Выбор данных из разных таблиц в laravel - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть таблица статей, определяемая их ID, name, price и category_ID, и таблица категорий, определяемая category_ID и name. Я хочу выбрать в своем контроллере список статей вместе с категорией name.

Как это сделать?

Ответы [ 2 ]

0 голосов
/ 05 апреля 2019

с необработанными SQL

$query = "SELECT articles.* , categories.name AS categoryName FROM articles JOIN categories ON articles.category_ID = categories. category_ID"
$result = \DB::select(SQL);
dump($result)

или

с помощью Eloquent вы можете добавить метод в вашу модель для возврата отношения, давайте назовем его category

class Article extends Model {
    public function category(){ 
        return $this->hasOne("App/Category" , "category_ID" , "category_ID");
    }
}

теперь вы можете сделать это

$article = Article::find(1);
dump($article->category->name);

оформить заказ hasOne метод из документов

0 голосов
/ 05 апреля 2019

В моем ответе предполагается, что вы храните модели в папке App \ Models

В вашей модели статей определите следующий метод.

public function category()
{
    return $this->belongsTo('App\Models\Category');
}

Вы можете получить к нему доступ через $myArticle->category->name;

Убедитесь, что в модели категорий определена правильная таблица, на основе вашего вопроса я не могу составить таблицу категорий.

Поместите $table = 'categories'; в модель категории или в другое имя таблицы.

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