我想更新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