Красноречивые Отношения Нет Выхода - PullRequest
0 голосов
/ 15 мая 2018

Я новичок в Eloquent Relationship и вообще в Laravel. Я пытаюсь найти способ установить отношения «многие ко многим», но каким-то образом я получаю no output. По сути, я намерен прояснить концепцию Eloquent Relationships, поэтому я изменил имя таблицы по умолчанию, а также поместил все модели и контроллеры в отдельные папки. Хотя пространство имен не создает проблем, но я считаю, что отношения Eloquent создают какие-то проблемы. Ниже упомянут весь мой код.

Модели: namespace App\Relationship_Model;

class roles_model extends Model
{
    protected $table="roles_table";
    public $timestamps=false;

    public function users_table()
    {
        return $this->belongsToMany(users_model::class);
    }
}

class users_model extends Model
{
    protected $table="users_table";
    public $timestamps=false;

    public function roles_table()
    {
     return $this->belongsToMany(roles_model::class);   
    }
}
class roles_users_model extends Model
{
    public $timestamps=false;
    protected $table="roles_users_table";


}

Контроллер: namespace App\Http\Controllers\Relationship_Controller;

use App\Relationship_Model\roles_model;
use App\Relationship_Model\users_model;

class HomeController extends Controller
{
    public function index()
    {
        $role=users_model::find(1)->roles_model;
        dd($role);
    }
}

1 Ответ

0 голосов
/ 15 мая 2018

Когда вы делаете много для многих, вам не нужна третья модель, подобная вашей: roles_users_model, если только вы не являетесь сущностью, которая принадлежит многим пользователям и принадлежит многим ролям.

Laravel использует собственное соглашение об именах. Рекомендуется следовать этим названиям. Но в вашем случае вам придется указать с вашими параметрами:

return $this->belongsToMany('App\Role', 'role_user', 'user_id', 'role_id');

Ссылки:
https://laravel.com/docs/5.6/eloquent-relationships#many-to-many https://github.com/alexeymezenin/laravel-best-practices#follow-laravel-naming-conventions

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...