Получить значение из другой таблицы laravel - PullRequest
0 голосов
/ 02 апреля 2020

Я хочу получить значение из пользовательской таблицы, где role_id = 2

public function index(){
         return view('admin.articles.index',[
        'articles' => Article::orderBy('created_at', 'desc')->paginate(10),
        'articles_suggest' => Article::with('user')->where('user.role_id',2)->paginate(10),
    ]);

}

 Unknown column 'user.role_id' in 'where clause' (SQL: select count(*) as aggregate from `articles` where `user`.`role_id

модель пользователя

public function articles(){
        return $this->hasMany('App\Article');
    }

модель изделия

 public function user(){
    return $this->belongsTo(User::class, 'author_id');
  }

Ответы [ 2 ]

0 голосов
/ 02 апреля 2020

Попробуйте обратный звонок

'articles_suggest' => Article::with(['user'=>function($q){
    $q->where('role_id',2);
}])->paginate(10),
0 голосов
/ 02 апреля 2020

Прежде всего, я бы посмотрел на комментарий @deepak. Вот ссылка о нетерпеливая загрузка . Перепишите функцию индекса для чего-то вроде этого:

$articles = Article::with(['user' => function ($query) {
    $query->where('role_id', '=', 2);
}])->paginate(10);

И тогда, я думаю, вы могли бы сделать это, по вашему мнению:

// Looping through articles
@foreach($articles as $article)
    // Check if there is a user associated with the article
    @if( $article->user )
        // Access the user column/attribute
        {{ $article->user->theusercolumn }}
    @endif
@endforeach
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...