私は雄弁な関係でデータを保存しようとしています。3つの関係が雄弁にデータを保存する
私は以下の3つのテーブルを持っています:ユーザテーブル、カテゴリテーブル、およびポストテーブル。
ポスト表
Schema::create('posts', function (Blueprint $table) {
$table->increments('id');
$table->integer('category_id')->unsigned();
$table->integer('user_id')->unsigned();
$table->string('heading');
$table->timestamps();
$table->foreign('category_id')->references('id')->on('categories');
$table->foreign('user_id')->references('id')->on('users');
});
関係:
カテゴリー:
public function posts() {
return $this->hasMany('App\Post');
}
ポスト:
public function user() {
return $this->belongsTo('App\User');
}
public function category() {
return $this->belongsTo('App\Category');
}
ユーザー:
public function posts($category) {
return $this->hasMany('App\Post');
}
私の問題は、作成機能で見出しを渡すだけで投稿を保存するにはどうすればいいですか。私はその関係を使いたい。
$data = ['heading' => $heading];
$user->posts()->category()->create($data);
これは原料のこの種を行うことは可能です。例として、私はこの種のコードを使用したいですか?
またはこれを達成するための他の簡単な方法。私はこのような関係を利用してポストを作成する必要があり
EDIT
。プロセスごとのよう
:
ユーザーは、私が カテゴリIDと一緒にデータを取得する元のフォームをいっぱいになります。
ここで、指定したカテゴリIDに関連するユーザーのデータを作成する必要があります。
実際には、カテゴリではない投稿を作成する必要があります。ユーザーは投稿データとカテゴリIDを取得する場所から投稿フォームを送信します –
私のエントリを編集します –
カテゴリオブジェクトを使用して投稿を保存することは可能ですか?私はデータ配列のカテゴリIDを送信したくありません。私は 'data'に' heading'だけを送ろうとしています –