猿问

Laravel在哪里查询查询

我有一个空格和一个兴趣表。


我目前能够获取另存为$ spaceList的空间ID的列表,但我希望我的$ query变量从$ spaceList变量中检索与space_id外键与space_id之一匹配的兴趣列表。


public function index() {


        $user_id = auth()->user()->id;

        $user = User::find($user_id);


        $spaceList = Space::where('user_id', $user_id)->pluck('space_id')->toArray();

        $query = Interest::where('space_id', $spaceList);


        $interests = $query->get(); 


        return view('dashboard')->with('space', $user->space)->with('interest', $interests);

}

谢谢,我已经很久了。


撒科打诨
浏览 136回答 2
2回答

HUH函数

在Laravel Eloquent中,这就是“查询关系存在”的 工作原理如果不在其他地方使用,则不需要$ spaceList变量$query = Interest::whereHas('spaces', function($query) use ($user_id) {    $query->where('user_id', '=', $user_id);});请注意,要完成这项工作,您需要在兴趣模块中声明空格一对多关系应该是这样的,更多详细信息请参见此处的文档namespace App;use Illuminate\Database\Eloquent\Model;class Interest extends Model{    public function spaces()    {        // space_id is the column name in your space database table        // id the the foreign-key target, generally is the primary-key of space table        return $this->hasMany('App\Space', 'space_id', 'id');    }}

临摹微笑

您应该使用whereIn而不是where$spaceList = Space::where('user_id', $user_id)->pluck('space_id')->toArray(); $query = Interest::whereIn('space_id', $spaceList);
随时随地看视频慕课网APP
我要回答