gpt4 book ai didi

php - laravel 使用没有链接的查询生成器

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:09:07 24 4
gpt4 key购买 nike

我有一个有效的查询构建器:

        $article = Page::where('slug', '=', $slug)
->where('hide', '=', $hidden)
->first();

但如果 hidden 等于 1,我只想添加第二个 where 语句。我已经尝试了下面的代码,它显示了我正在尝试做的事情的逻辑,但它不起作用。

$article = Page::where('slug', '=', $slug);
if ($hidden == 1) {
$article->where('hide', '=', 1);
}
$article->first();

我正在使用 Laravel 4,但我认为问题仍然存在于 Laravel 3。

最佳答案

是的,Eloquent 和查询构建器有点“陷阱”。试试下面的代码 ;)

$query = Page::where('slug', '=', $slug);

if ($hidden == 1) {
$query = $query->where('hide', '=', 1);
}

$article = $query->first();

注意在条件语句中分配 $query。这是因为第一个 where (静态调用)在条件中将不同的对象返回给查询对象。解决这个问题的一种方法,我相信由于最近的提交,就像这样:

$query = Page::where('slug', '=', $slug)->query();

这将返回查询对象,您可以按正常方式执行您想要的操作(而不是重新分配 $query)。

希望对您有所帮助。

关于php - laravel 使用没有链接的查询生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14717883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com