我想更新laravel的產物,但它不能正常工作,Laravel填寫返回null
我控制器的update方法是這樣的:
public function updateProduct(Request $request)
{
# Get input values
$data = $request->all();
$productID = $data['id'];
$product = Product::find($productID);
$product->fill($data);
# Validate input
$validator = Validator::make($request->all(), Product::$rules);
if ($product->save())
{
# save language selection
$lsCounter = 0;
$langSelecName = $request->input('language');
$langSelecFile = $request->file('language');
if ($langSelecName)
{
$projectPath = $dProjectPath . "languages";
foreach ($langSelecName as $langSelecNameKey => $langSelecNameValue)
{
if ($langSelecFile[$lsCounter]['input_vid_lang'] != null)
{
$langVidFileName = $langSelecFile[$lsCounter]['input_vid_lang']->getClientOriginalName();
$languages = new Language();
$languages['short_name'] = $langSelecNameValue;
$languages['input_video'] = $projectLangPath . '\\' . $langVidFileName;
$languages->product()->associate($product);
$langData = [
'languagesShortName' => $languages['short_name'],
'languagesInputVideo' => $languages['input_video']
];
$intProductID = intval($productID);
$findLangId = $languages->find($intProductID);
$findLangId->fill($langData);
if ($languages->save())
{
$langSelecFile[$lsCounter]['input_vid_lang']->move($projectLangPath, $langVidFileName);
}
}
$lsCounter++;
}
}
} else {
return redirect()->route('editProduct', $productID)->with('message', 'Error')->withInput();
}
我碰到下面的錯誤後,我嘗試更新它,錯誤是這樣的:
調用一個成員函數填充()上的空
並將其指向這一行:
$findLangId->fill($langData);
我很欣賞一些幫助,謝謝。
編輯
好的人說,$intProductRomID
爲空,但我得到了正確的產品ID,如果我的DD($ intProductRomID)。
可以肯定的是,$ findLangId爲null,因爲關於它的行沒有返回結果。 –
@Josh Rumbut但如果我返回$ languages和$ intProductRomID,我會得到一些結果,你能告訴我你將如何解決這個問題 – utdev
標題不正確!你試圖在'Null'上調用'fill()'就像這樣'null-> fill()' – zorx