我正在尝试获取url,例如localhost / cat / restaurants / this-is-a-test,但在尝试加载网址时会抛出错误。
我有2个数据库表'评论'和'分类'
评论 - id,cat_id,slug,categorys - id,cat
我有一个通过cat_id链接两个表的模型
SQLSTATE [42S22]:未找到列:1054未知列' cat'在' where子句' (SQL:select * from reviews where cat = Restaurants and slug = this-is-a-test)
我猜它正在努力拉扯“猫”。从评论表而不是' categories'但是在我的刀片模板中,我有网址路径 - {!! URL :: route(' reviews.slug',[$ review-> categorys-> cat,$ review-> slug])!!}它会拉出两个变量并加载url localhost /猫/餐馆/这-is-a的测试
routes.php文件
Route::get('reviews/cat/{cat}/{slug}', ['as' => 'reviews.slug', 'uses' => 'ReviewController@ShowbySlug']);
reviewcontroller.php
public function ShowBySlug($cat,$slug) {
$slugs = Review::with('reviewimages','maps','categorys')->where('cat', $cat)->where('slug', $slug)
->get();
return View::make('pages.reviews')
->with('slugs', $slugs)
->with('cat', $cat)
;
}
答案 0 :(得分:2)
您可以使用whereHas
按关系进行过滤:
$slugs = Review::with('reviewimages','maps','categorys')
->whereHas('categorys', function($q) use ($cat){
$q->where('cat', $cat);
})
->where('slug', $slug)
->get();