laravel wherelike加入查询 - 关系中未定义的方法?

发布于 2025-01-26 07:35:43 字数 769 浏览 2 评论 0原文

我想知道是否有人可以帮助我了解以下问题:

我试图编写一个错误的查询,但我不确定为什么?

    MealNutritionalInformation::join('meals', 'meal_nutritional_information.id', '=', 'meals.id')
            ->whereLike(['meals.id'], $this->search)
            ->orderBy($this->sortField, $this->sortDirection)
            ->paginate(10)

看来WONELIKE给出了以下内容:

致电未定义的方法\型号\ fealnutritionalinformation :: feals()

我已经建立了以下关系和餐食营养信息模型。

营养:

public function meal()
{
    return $this->hasOne(Meal::class, 'id', 'meal_id');
}

餐:

public function meal_nutritional_information()
{
    return $this->hasMany(MealNutritionalInformation::class, 'meal_id', 'id');
}

I was wondering whether anyone can please help me understand where I am going wrong with the following:

I am trying to write a query which errors and I am unsure why?

    MealNutritionalInformation::join('meals', 'meal_nutritional_information.id', '=', 'meals.id')
            ->whereLike(['meals.id'], $this->search)
            ->orderBy($this->sortField, $this->sortDirection)
            ->paginate(10)

It appears that the whereLike gives the following:

Call to undefined method App\Models\MealNutritionalInformation::meals()

I have set up the following relationships on my meal and meal nutritional information models.

Nutritional:

public function meal()
{
    return $this->hasOne(Meal::class, 'id', 'meal_id');
}

Meals:

public function meal_nutritional_information()
{
    return $this->hasMany(MealNutritionalInformation::class, 'meal_id', 'id');
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

剩一世无双 2025-02-02 07:35:43

您会在加入查询中犯错: - feal_nutritional_information.id而不是feal_nutritional_information.meal_id。

 MealNutritionalInformation::join('meals','meal_nutritional_information.meal_id', '=', 'meals.id')
        ->whereLike(['meals.id'], $this->search)
        ->orderBy($this->sortField, $this->sortDirection)
        ->paginate(10)

You make mistake in the join query :- meal_nutritional_information.id insteadad of meal_nutritional_information.meal_id.

 MealNutritionalInformation::join('meals','meal_nutritional_information.meal_id', '=', 'meals.id')
        ->whereLike(['meals.id'], $this->search)
        ->orderBy($this->sortField, $this->sortDirection)
        ->paginate(10)
皇甫轩 2025-02-02 07:35:43

我已将我的下落()更新为解决问题的以下内容:

->where('meals.name', 'LIKE', '%' . $this->search . '%')

I have updated my whereLike() to the following which resolves the issue:

->where('meals.name', 'LIKE', '%' . $this->search . '%')
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文