我尝试更新特定项目,但出现错误“在空值上调用成员函数 update()”。 我之前尝试用 ->insert($data) 更改 ->update($data) 并且它有效。
Controller :
public function update(Request $request, $id)
{
$this -> validate($request, array(
'gamename' => 'required|min:3',
'price' => 'required|int|min:1',
'genre' => 'required',
'releaseddate' => 'required|date',
'picture' => 'required|mimes:jpeg,jpg,png,gif'
));
$gamename = $request->input('gamename');
$genre = $request->input('genre');
$price = $request->input('price');
$releaseddate = Carbon::parse($request->input('releaseddate'));
$picture = $request->file('picture')->getClientOriginalName();
$data=array('gamename' => $gamename, 'genre'=>$genre, 'price'=>$price,'releaseddate'=>$releaseddate,'picture'=>$picture );
DB::table('games')->join('genres', 'games.genreid', '=', 'genres.genreid')->find($id)->update($data);
return redirect('managegame');
}
查看:
<form action="/update/{id}" method="post" id="registerform" enctype="multipart/form-data">
<div class="errorpop{{ $errors->has('genre') ? ' has-error' : '' }}">
<label for="genre" class="">Genre</label>
<div class="">
@foreach($genres as $genre)
<option value="{{ $genre->genreid }}">{{ $genre->genre }}</option>
@endforeach
@if ($errors->has('genre'))
<span class="help-block">
<strong>{{ $errors->first('genre') }}</strong>
</span>
@endif
</div>
</div>
最佳答案
{id}
不是一个值。您必须具有 {id}
的值。
示例:action="/update/1"
<form action="/update/1" method="post" id="registerform" enctype="multipart/form-data">
<div class="errorpop{{ $errors->has('genre') ? ' has-error' : '' }}">
<label for="genre" class="">Genre</label>
<div class="">
@foreach($genres as $genre)
<option value="{{ $genre->genreid }}">{{ $genre->genre }}</option>
@endforeach
@if ($errors->has('genre'))
<span class="help-block">
<strong>{{ $errors->first('genre') }}</strong>
</span>
@endif
</div>
</div>
然后更新你使用方法 where('id', $id)
替换 find($id)
DB::table('games')->join('genres', 'games.genreid', '=', 'genres.genreid')->where('id', $id)->update($data);
关于php - 在 null LARAVEL 上调用成员函数 update(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48139158/