gpt4 book ai didi

php - 过滤结果有很多关系

转载 作者:行者123 更新时间:2023-11-29 07:23:29 24 4
gpt4 key购买 nike

我正在努力过滤一些结果。我有一个名为“Process”的表,另一个名为“Actors”。流程有很多 Actor 。这是模型:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Process extends Model
{
public function actors()
{
return $this->hasMany(Actor::class)->orderBy('actor');
}
}

所以我有一个 View ,可以显示所有流程及其参与者。问题是,我想做一个过滤选项,我会在其中检查 Auth::user()->username 是否与 Actor->actor 相同。

我尝试了一些方法:

public function index()
{
$processes = Process::all();

$processes ->actors()->where('actor', 'Test')->get();

return view('process.process', compact('processes '));

}

(在我出于测试目的比较 Test 的地方,如果我确实让它工作,我显然会将其更改为 Auth::user()->username)

这显示了以下错误:

BadMethodCallException Method Illuminate\Database\Eloquent\Collection::actors does not exist.

我已经尝试了一些变体(例如在 Controller 中运行 foreach,但要么我做错了,要么那不是这样做的方法......)但无济于事。非常感谢任何帮助!

最佳答案

我假设您想要获取当前经过身份验证的用户的所有进程,如果是的话,这就是您所需要的。

public function index()
{
$processes = Process::whereHas('actors',function($query){
$query->where('id',Auth::user()->id);
});

return view('process.process', compact('processes '));

}

关于php - 过滤结果有很多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55065046/

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