我正在制作图片库。图像与标签有很多关系。图像与catagories有很多关系。
$images = $category->images;
$images = $tag->images;
public function images(Category $category = null)
{
$images = $category->images;
return view('pages.images.index', compact('images'));
}
此代码上的路径模型绑定工作正常,我可以对标记执行相同操作,但我要做的是过滤类别然后标记。
$images = $tag->category->images;
例如,如果我的图片标记为" dog"和一个类别" brown"查询只返回所有褐色的狗。
我可以这样做吗?标签和类别都可以有多个选项,所以我希望有这样的路线......
mysite.com/images/ {类别} / {标签}
感谢您提供任何帮助或最佳方向。
答案 0 :(得分:0)
您可以使用laravel中的构建功能
Image::whereHas('categories', function ($query) use ($category) {
$query->where('NAME', '=', $category);
})->whereHas('tags', function ($query) use ($tag) {
$query->where('NAME', '=', $tag);
})->get();
将NAME替换为您要过滤的所需字段。
答案 1 :(得分:0)
您可以按照说明声明路线,然后将它们用作连接到路线的控制器方法中的参数。
因此,如果您声明类似Route::get('/register/{token1}/{token2}','RegisterController@confirm');
的路由,则可以在方法中获取这些通配符,就像正常参数一样:
public function confirm(Request $request, $token1, $token2) {}