Коллекция Laravel пуста - PullRequest
       2

Коллекция Laravel пуста

0 голосов
/ 24 сентября 2019

Я пытаюсь узнать больше о Laravel ORM и ORM в целом, но у меня есть проблемы, которые я не могу решить самостоятельно.

Это моя таблица пользователей:

А вот моя таблица статей:

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

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{

    /**
    * The table associated with the model.
    *
    * @var string
    */

    protected $table = 'users';

    public function article()
    {
        return $this->hasMany('\App\Models\Article', 'autor_id');
    }


}

И моя модель статьи eloquent:


<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Article extends Model
{

    /**
    * The table associated with the model.
    *
    * @var string
    */

    protected $table = 'clanky';

    public function autor() {
        return $this->belongsTo('\App\Models\User', 'id');
    }



}

Я пытаюсь получить доступкаждая статья с данными об авторе использует этот код:

$articles = Models\Article::all();

foreach($articles as $art)
{
    echo $art->autor->name . "<br>";
}

Проблема в том, что модель возвращает только данные пользователя из первой статьи, а не из второй, и так далее.Есть мысли о том, что может вызвать это?Заранее спасибо.

1 Ответ

0 голосов
/ 25 сентября 2019

Я думаю, вам нужно обновить ваш код, как.

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Article extends Model
{

    /**
    * The table associated with the model.
    *
    * @var string
    */

    protected $table = 'Article';

    public function autor() {
        return $this->belongsTo('\App\Models\User', 'autor_id', 'id');
    }



}

$articles = Models\Article::with('autor')->get();

foreach($articles as $art)
{
    echo $art->autor->name . "<br>";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...