gpt4 book ai didi

php - 在 Laravel 5 中什么时候不应该使用 get()

转载 作者:行者123 更新时间:2023-12-02 07:21:46 25 4
gpt4 key购买 nike

我需要了解何时/不应该在 Laravel 5 中使用 get();

PHP warning: Missing argument 1 for Illuminate\Support\Collection::get()

Google shows me answers他们的问题,但没有人真正解释什么时候应该/不应该使用它。

示例:

App\User::first()->timesheets->where('is_completed', true)->get(); // error
App\Timesheet::where('is_completed', true)->get(); // no error

修复:

App\User::first()->timesheets()->where('is_completed', true)->get(); // no error

注意到 timesheets() 而不是时间表?我可以详细解释一下发生了什么吗?

我来自 Ruby 背景,我的代码失败了,因为我不知道何时使用 () 或不。

最佳答案

我会尽我所能描述这个 () 表示法在属性返回构建器的实例之后,让我们举一个关系的例子,

假设您有一个 User 模型,它与 Posts 具有一对多关系,

如果你这样做:

$user = App\User::first();

$user->posts();

这里将返回一个关系实例,因为你附加了 (),现在你应该什么时候附加 ()?每当您想在其上链接其他方法时,您都应该这样做,例如:

$user->posts()->where('some query here')->first();

现在我将拥有我想要的一件元素。

如果我需要说出所有帖子,我可以这样做:

$user->posts;

或者这个

$user->posts()->latest()->get();
$user->posts()->all()->get();

所以这里的关键是,每当你想将方法链接到一个 Eloquent 查询上时,使用 (),如果你只是想检索记录或直接访问这些记录的属性,那么就这样做吧这个:

$user->posts->title;

关于php - 在 Laravel 5 中什么时候不应该使用 get(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44000309/

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