Laravel where 子句中的未定义变量
Laravel Undefined variable in where clause
我正在尝试从 url 获取 id 查询参数。之后,我要比较url中的ID与数据库中的作品ID是否相同,然后进行其他操作。
但是,where 子句中的 $artworks()->id 算作未定义变量。问题是未定义的变量:艺术品。请问我哪里做错了?
public function show($id)
{
if(filled($id)){
$artworks = Artwork::all()->where($id,'=',$artworks()->id);
$categories = Category::all();
$artist = User::all();
return view('pages.artwork-detail', compact('categories', 'artworks','artist'));
}else{
echo("The id does not exist.");
}
}
你可以这样做:
public function show($id)
{
if(filled($id)){
$artworks = Artwork::find($id);
$categories = Category::all();
$artist = User::all();
return view('pages.artwork-detail', compact('categories',
'artworks','artist'));
}else{
echo("The id does not exist.");
}
}
我不知道我的回答是否有效,但我肯定可以解决您代码中的一些问题。
public function show($id)
{
if(!filled($id)) return echo("The id does not exist.");
// I don't know $id belongs to what. If it's artworks' id:
$artworks = Artwork::findOrFail($id);
// Otherwise, let's say it's user_id on the artworks table:
$artworks = Artwork::where('user_id', $id)->get();
// But if it's, use the following line instead of the other one.
$categories = Category::all();
$artist = User::all();
return view(
'pages.artwork-detail',
compact('categories', 'artworks', 'artist')
);
}
试试这些 where 条件
$artworks = Artwork::where('id','=', $id)->get();
$artworks = Artwork::where('id', $id)->get();
$artworks = Artwork::find($id);
如果您只需要一条记录,请尝试这些 where 条件
$artworks = Artwork::where('id','=', $id)->first();
$artworks = Artwork::where('id', $id)->first();
$artworks = Artwork::find($id);
我正在尝试从 url 获取 id 查询参数。之后,我要比较url中的ID与数据库中的作品ID是否相同,然后进行其他操作。
但是,where 子句中的 $artworks()->id 算作未定义变量。问题是未定义的变量:艺术品。请问我哪里做错了?
public function show($id)
{
if(filled($id)){
$artworks = Artwork::all()->where($id,'=',$artworks()->id);
$categories = Category::all();
$artist = User::all();
return view('pages.artwork-detail', compact('categories', 'artworks','artist'));
}else{
echo("The id does not exist.");
}
}
你可以这样做:
public function show($id)
{
if(filled($id)){
$artworks = Artwork::find($id);
$categories = Category::all();
$artist = User::all();
return view('pages.artwork-detail', compact('categories',
'artworks','artist'));
}else{
echo("The id does not exist.");
}
}
我不知道我的回答是否有效,但我肯定可以解决您代码中的一些问题。
public function show($id)
{
if(!filled($id)) return echo("The id does not exist.");
// I don't know $id belongs to what. If it's artworks' id:
$artworks = Artwork::findOrFail($id);
// Otherwise, let's say it's user_id on the artworks table:
$artworks = Artwork::where('user_id', $id)->get();
// But if it's, use the following line instead of the other one.
$categories = Category::all();
$artist = User::all();
return view(
'pages.artwork-detail',
compact('categories', 'artworks', 'artist')
);
}
试试这些 where 条件
$artworks = Artwork::where('id','=', $id)->get();
$artworks = Artwork::where('id', $id)->get();
$artworks = Artwork::find($id);
如果您只需要一条记录,请尝试这些 where 条件
$artworks = Artwork::where('id','=', $id)->first();
$artworks = Artwork::where('id', $id)->first();
$artworks = Artwork::find($id);