Дамп и д ie (дд) в домашнем контроллере - PullRequest
1 голос
/ 25 февраля 2020

В настоящее время я следую учебному пособию по YouTube "Сводные таблицы и отношения многие ко многим в Laravel - Laravel Business". Я наконец понял отношения, но у меня возникли проблемы с практической реализацией. У меня есть две таблицы user и role, а также сводная таблица для соединения двух, называемая role_user.

Я использую домашний контроллер для тестирования согласно учебному пособию по YouTube, однако при попытке присоединить role_id до user_id с использованием dd информация не отображается. Я делаю что-то не так в своей сети. php?

Я новичок в laravel, поэтому я был бы признателен за любую помощь. Спасибо.

HomeController

<?php

namespace App\Http\Controllers;

use App\Role;
use App\User;
use Illuminate\Http\Request;

class HomeController extends Controller
{
    public function index()
    {
        $user = User::find(1);
        $user->roles()->attach(1);
        dd($user->roles);
    }
}

Пользователь. php

 <?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    /**
     * The attributes that should be cast to native types.
     *
     * @var array
     */
    protected $casts = [
        'email_verified_at' => 'datetime',
    ];

    public function roles() {

    return $this->belongsToMany(Role::class);
    }
}

Интернет. php

<?php

Route::get('/', function () {
    return view('welcome');
});

Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');

Я пытаюсь сделать, как показано ниже, к сожалению, в видео нет ничего о его маршрутах. Я создал для этого новый проект laravel.

enter image description here

1 Ответ

0 голосов
/ 25 февраля 2020

Вы должны указать сводную таблицу в модели, где вы определяете отношения:

public function roles() {

    return $this->belongsToMany(Role::class,'role_user', 'rold_id', 'user_id' );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...