Laravel / ORM не создает связанную таблицу

Как я могу добавить значение в переменную, связанную с ORM

Его содержат новости и комментарии Модель

class News extends Model {

protected $connection = 'mysql';
protected $primaryKey = 'id';
protected $table = 'news';
protected $fillable = array(
'id',
'name',
'category',
'type',
'datetime',
'shortdesc',
'desciption'

);
public $timestamps = false;

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

Таблица комментариев

class Comments extends Model {

protected $connection = 'mysql';
protected $primaryKey = 'id';
protected $table = 'comments';
protected $fillable = array(
'id',
'news_id',
'name',
'description'
);
public $timestamps = false;public function news()
{
return $this->belongsTo('App\News','news_id');
}};

И когда я пытаюсь добавить это значение, его создать только Новости Таблица
без связи Комментарии таблица. (Не исключение, просто создать таблицу новостей)

 public function AddData()
{
$row=new News;
$row->name="Myname";
$row->category="vcc";
$row->type="2";
$row->comments()->news_id="1";
$row->comments()->name="someval";

$row->save();
return view::make('first_view');
}

0

Решение

При вставке связанной модели комментариев возникает проблема. Есть много способов решить вашу проблему.

Решение, которое я предпочитаю использовать:

public function AddData()
{

// Create news model
$news = News::create([
'name' => 'Some name',
'category' => 'somecategory',
....
]);

// Create comment through news model
// news_id will automatically be inserted
$comment = $news->comments()->create([
'name' => 'some name'
]);

}

Смотрите документацию

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]