Laravel, Eloquent: Relationships. Запись двух сущностей в 1 строку

246
21 июня 2018, 03:50

Есть 3 сущности. Article, User и Category.

Article

class Article extends Model{
  public function user()
  {
     return $this->belongsTo(User::class);
  }
 public function category()
    {
      return $this->belongsTo(Category::class);
    }
}

User

class User extends Authenticatable{
public function articles()
  {
      return $this->hasMany(Article::class);
  }

Category

class Category extends Model{
public function articles()
  {
    return $this->hasMany(Article::class);
  }
}

Чтобы сохранить в бд пользователя, который создал статью, в контроллере я использую следующий код:

class TestController extends Controller
{
    public function test()
    {
      $user = Auth::user();
      $article = new Article(['name' => 'test']);
      //сохраняю запись
      $user->articles()->save($article);
}

}

Но мне так же нужно в таблицу со статьями сохранить категорию статьи. Категорию статьи я получаю в контроллере:

$category = Category::find(2);

Но каким образом мне сохранить две эти сущности($user и $category) внутрь $article. Т.е. нужно чтобы в таблице articles были 2 ячейки - user_id и category_id. Подскажите пожалуйста.

READ ALSO
Подсчет количества голов. SQL запрос

Подсчет количества голов. SQL запрос

Есть таблица, где хранятся результативные действия игроковЕсть поле, которые под определенным индексом хранит определенное действие(1-гол,...

264
Protected связь через Parent

Protected связь через Parent

Я что-то в этой жизни пропустилПочему property x доступна как public? PHP работает с protected не только с дочерними элементами, но и связывает их через...

234
PHP Отправка длинного письма на почту

PHP Отправка длинного письма на почту

Есть текст, в котором > 70 символовПри отправке на почту, письмо не доставляется, хотя функция mail() возвращает true

238
Редирект на страницу через php

Редирект на страницу через php

Как сделать так, чтобы при редиректе через header() текущее положение на странице оставалось на своем месте и не перекидывало на верх страницы?

260