Laravel Ошибка ManyToMany - PullRequest
1 голос
/ 08 мая 2020

у меня есть эта функция в пользовательской модели

public function kelas(){
    return $this->belongsToMany('App/Kelas','user_classes','id_user','id_class')->withTimeStamps();
}

я получил эту функцию в модели kelas

public function user(){
    return $this->belongsToMany('App/User','user_classes','id_class','id_user');
}

My Controller

public function kelas()
{
    $kelas =  Kelas::all();
    $namaguru = Auth::user()->name;
    $idlogin = Auth::user()->id;
    $kelasdiambil = User::get();
    $kelaspengajar = Kelas::all()->where("namaguru",$namaguru);
    return view('crudkelas', compact("kelas","kelaspengajar",'kelasdiambil'));
}

My pivot migration

Schema::create('user_classes', function (Blueprint $table) {

        $table->unsignedBigInteger('id_user');
        $table->unsignedBigInteger('id_class');

        $table->timestamps();

        $table->primary(['id_user','id_class']);

        $table->foreign('id_user')->references('id')->on('users')->onDelete('cascade')->onUpdate('cascade');
        $table->foreign('id_class')->references('id')->on('classes')->onDelete('cascade')->onUpdate('cascade');
    });

Я хочу создать представление, которое показывает все namekelas в таблице классов, используя эту сводную таблицу с условием, где id_user == Auth :: user () -> id ....

@foreach($kelasdiambil->kelas as $pel)
      <tr>
        <td><a href="ruang/{{$pel->namekelas}}">{{$pel->namekelas}}</a></td>
        <td>{{$pel->kode}}</td>
        <td><a href="/edit/kelas/{{$pel->id}}" class="btn btn-primary">Edit</a> <a href="/hapus/kelas/{{$pel->id}}" class="btn btn-danger">Hapus</a></td>
      </tr>
      @endforeach

Ошибка

Property [kelas] does not exist on this collection instance. (View: I:\darinol\nictoschool\resources\views\crudkelas.blade.php)

на английском sh языке, я просто хочу создать пользователя, и таблица классов стала многими отношениями и создать представление, чтобы отображать все имена классов в таблице классов, используя эту сводную таблицу, где условие id_user в pivot == Auth :: user () -> id; :( помогите мне

1 Ответ

1 голос
/ 08 мая 2020

Вы должны написать вот так

public function kelas(){
    return $this->belongsToMany('App\Kelas','user_classes','id_user','id_class')->withTimeStamps();
}

public function user(){
    return $this->belongsToMany('App\User','user_classes','id_class','id_user');
}

Вы используете коллекцию массивов

$kelasdiambil = User::get();

Итак, вы должны использовать вот так

@foreach($kelasdiambil as $pel)
     <td><a href="ruang/{{$pel->kelas->namekelas}}">{{$pel->kelas->namekelas}</a></td>

Или вы нужно использовать вот так

$kelasdiambil = User::first();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...