2017-07-12 55 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變量在被請求時尚未定義?但我怎麼能處理這個?一般來說 - 我是否做得很對?

我的廣告屬於類別,類別有許多廣告。

謝謝!

+0

問題在於,您在爲$ cat-> title使用它之後創建$ cat,而不是這樣做。設置$ cat-> title爲請求('category),或者將其設置爲空白,然後運行$ ad = Ad :: find($ ad-> id); $ ad-> cat_title = $ cat-> title; $ AD-)>保存(; – MyStream

+0

好吧,我只是這樣做 - 'cat_title'=>請求('類別') - 它的工作原理。不知道我在做什麼邏輯,但到目前爲止似乎沒問題。謝謝! – fuji

回答

0

在插入廣告後,您正在執行第二部分,因此,您可以將其包裹在像這樣的條件內。

// 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 
    ]); 
}