رایموند
6 سال پیش توسط رایموند مطرح شد
10 پاسخ

خطای Undefined variable tags

درود دوستان...
با دستور foreach خطا می دهد که میگه tags موجود نیست:

<div class="form-group">
 <label class="col-form-label" for="option1">برچسب ها</label>
    <select class="form-control" id="js" multiple="multiple" name="tags[]">
        @foreach ($tags as $tag)
               <option value="{{ $tag->id }}">{{ $tag->name }}</option>
         @endforeach
   </select>
</div>

ثبت پرسش جدید
رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 6 سال پیش آپدیت شد
0

درود دوستان...
مشکل حل شد.
پس از جستجو بسیار کد باید به شکل زیر باشد:
فراخوانی مدل Tag:

use App\Tag;

کد ایندکس:

public function create()  
{  
$tags = Tag::all();  
return view('discuss.create',compact('tags'));  
}

وحید رضازاده
تخصص : برنامه نویس
@vahidrezazadeh 6 سال پیش مطرح شد
0

@RaymondDragon
سلام
خب اینجوری که مشحص نیست . باید کد کنترلر رو هم بذارین
احتمالا tags رو درست نفرستادین به view


رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 6 سال پیش مطرح شد
0

@vahidrezazadeh
درود...

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Tag;

class TagController extends Controller
{
    public function index()
    {
        $tags = Tag::all();
        return view('tags.index') -> withTags($tags);
    }

    public function store(Request $request)
    {
        $this -> validate($request, array(
            'name' => 'required | max:50',
        ));

        $tags = New Tag;
        $tags -> name = $request -> name;
        $tags -> save();

        return redirect() -> route('tags.index', $tags->id) -> withMessage('برچسب شما با موفقیت ایجاد شد!');
    }

    public function edit($id)
    {
        $tags = Tag::find($id);
        return view('tags.edit') -> withTags($tags);
    }

    public function update(Request $request, $id)
    {
        $this -> validate(
            $request, array(
            'name' => 'required | max:50',
        )
    );

        $tags = Tag::find($id);
        $tags -> name = $request -> input('name');
        $tags -> save();

        return redirect() -> route('tags.index', $tags->id) -> withMessage('برچسب شما با موفقیت ویرایش شد!');
    }

    public function destroy($id)
    {
        $tags = Tag::find($id);
        $tags -> delete();

        return redirect()-> route('tags.index') -> withMessage('برچسب شما با موفقیت حذف شد.');
    }
}

وحید رضازاده
تخصص : برنامه نویس
@vahidrezazadeh 6 سال پیش مطرح شد
0

@RaymondDragon
کد ایندکس رو به این صورت بنویس
من این فرمتی که شما نوشتی ندیدم تا حالا

    public function index()
    {
        $tags = Tag::all();
        return view('tags.index',compact('tags'));
    }

رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 6 سال پیش مطرح شد
0

@vahidrezazadeh

درود...
کار نکرد ...


رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 6 سال پیش مطرح شد
0

کسی نیست بگه...


Masiht
تخصص : برنامه نویس سمت سرور (php)
@masiht 6 سال پیش مطرح شد
0

سلام @RaymondDragony جان !

ببینم با کامپکت اون متغیر را به اون ویو فرستادید ؟


رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 6 سال پیش آپدیت شد
0

@masiht
آره فرستادم ولی کار نکرد...

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Tag;

class TagController extends Controller
{
    public function index()
    {
        $tags = Tag::all();
        return view('tags.index',compact('tags'));
    }

    public function create()
    {
        $tags = Tag::all();
        return view('tags.create',compact('tags'));
    }

    public function store(Request $request)
    {
        $this -> validate($request, array(
            'name' => 'required | max:50',
        ));

        $tags = New Tag;
        $tags -> name = $request -> name;
        $tags -> save();

        return redirect() -> route('tags.index', $tags->id) -> withMessage('برچسب شما با موفقیت ایجاد شد!');
    }

    public function show($id)
    {
        $tags = Tag::find($id);
        return view('tags.show',compact('tags'));
    }

    public function edit($id)
    {
        $tags = Tag::find($id);
        return view('tags.edit',compact('tags'));
    }

    public function update(Request $request, $id)
    {
        $this -> validate(
            $request, array(
            'name' => 'required | max:50',
        )
    );

        $tags = Tag::find($id);
        $tags -> name = $request -> input('name');
        $tags -> save();

        return redirect() -> route('tags.index', $tags->id) -> withMessage('برچسب شما با موفقیت ویرایش شد!');
    }

    public function destroy($id)
    {
        $tags = Tag::find($id);
        $tags -> delete();

        return redirect()-> route('tags.index') -> withMessage('برچسب شما با موفقیت حذف شد.');
    }
}

رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 6 سال پیش مطرح شد
0

اینم دیتابیس:

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateDiscussTagTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('discuss_tag', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('discuss_id')->unsigned();
            $table->integer('tag_id')->unsigned();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('discuss_tag');
    }
}

رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 6 سال پیش مطرح شد
0

درود دوستان...
کسی نمی تونه این مشکل رو حل کنه؟
سیستم برچسب گذاری ساخته شده ولی مشکل اینه که نمی تونه به سیستم برچسب گذاری ارتباط برقرار کنه...
اینم رابطه Many to Many که ایجاد شده:
Tag.php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Tag extends Model
{
    public function discusses()
    {
        return $this->belongsToMany('App\Discuss');
    }
}

Discuss.php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Discuss extends Model
{
    public function tags()
    {
        return $this->belongsToMany('App\Tag');
    }
}

رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 6 سال پیش آپدیت شد
0

درود دوستان...
مشکل حل شد.
پس از جستجو بسیار کد باید به شکل زیر باشد:
فراخوانی مدل Tag:

use App\Tag;

کد ایندکس:

public function create()  
{  
$tags = Tag::all();  
return view('discuss.create',compact('tags'));  
}

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام