Почему Eloquent HasMany возвращает пустую коллекцию? - PullRequest
0 голосов
/ 19 мая 2019

Привет, почему я получаю пустую коллекцию, когда я использую $ user-> posts в качестве свойства.Однако я делаю коллекцию get, когда использую $ user-> posts () в качестве функции.

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

    public function posts(){
        return $this->hasMany(Post::class);
    }

    public function index(User $user){
        dd($user->posts);
         return view('home', compact('user'));
    }

    @foreach($user->posts as $post)
        <p>$post->title</p>
        <p>$post->body</p>
    @endforeach
result
Collection {#1102 ▼
  #items: []
}

Ответы [ 2 ]

2 голосов
/ 19 мая 2019

Первый метод (user) должен быть в вашей post модели.

Второй метод (posts) должен быть в вашей user модели.

Проверкав вашей базе данных и посмотрите, есть ли в таблице записей столбец с именем user_id.

Проверьте базу данных и посмотрите, имеет ли столбец user_id правильное значение (согласно таблице users.

Также убедитесь, что в вашем маршруте есть {user}. Примерно так:

Route::get('home/{user}', 'Cotroller@method')
0 голосов
/ 19 мая 2019

Модель пользователя:

public function posts(){
    return $this->belongsTo(User::class);
}

Почтовая модель:

public function user(){
    return $this->hasMany(Post::class);
}

И убедитесь, что в вашей таблице post 1009 * есть столбец user_id

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