为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel在哪里查询查询

Laravel在哪里查询查询

PHP
撒科打诨 2021-04-27 14:33:39
我有一个空格和一个兴趣表。我目前能够获取另存为$ 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);}谢谢,我已经很久了。
查看完整描述

2 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

在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');

    }

}


查看完整回答
反对 回复 2021-05-07
?
临摹微笑

TA贡献1982条经验 获得超2个赞

您应该使用whereIn而不是where

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


查看完整回答
反对 回复 2021-05-07
  • 2 回答
  • 0 关注
  • 135 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信