2017-07-12 1 views
1

これを処理するのを手伝ってください。Laravel 5.4が未定義の(まだ)変数を別のモデルのテーブルに渡しています

コントローラ:私はエラーを取得しています

$ad = Ad::create([ 
    'title' => request('title'), 
    'body' => request('body'), 
    'cat_title' => $cat->title, 
    'price' => request('price'), 
    'city' => request('city') 
    ]); 

    $cat = Category::create([ 
    'title' => request('category'), 
    'slug' => str_slug(request('category'), '-'), 
    'ad_id' => $ad->id 
    ]); 

- 未定義の変数:猫 - 明らかに? $ cat変数は要求された時点でまだ定義されていないので?しかし、どうすればこれを処理できますか?そして、一般的には、私はそうしているのですか?

私の広告のbelongsToカテゴリ、およびカテゴリhaveManyの広告。

ありがとうございました!

+0

問題は、$ cat-> titleの代わりに$ catを作成しているということです。 $ cat-> titleをrequest( 'category')に設定するか、空白にして$ ad = Ad :: find($ ad-> id)を実行します。 $ ad-> cat_title = $ cat-> title; $ ad-> save(); – MyStream

+0

私はちょうどそのようにしました - 'cat_title' => request( 'category') - それが動作します。私がやっていることにどのくらいの論理があるのか​​は分かりませんが、これまでのところ大丈夫です。ありがとうございました! – fuji

答えて

0

広告の挿入後に2番目の部分を実行していますので、このような条件の中で折り返すことができます。

// Execute this portion if above statement executed succesfully. 
if (!empty($ad->id)) { 
    $cat = Category::create([ 
     'title' => request('category'), 
     'slug' => str_slug(request('category'), '-'), 
     'ad_id' => $ad->id 
    ]); 
} 
関連する問題