Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
联接Laravel表_Laravel - Fatal编程技术网

联接Laravel表

联接Laravel表,laravel,Laravel,我有三张表,分别是荣誉表、荣誉分类表和特殊邮政表。我需要从这些表中获取数据,并使用where条件检查post id 我在这里附上了数据库表截图 我已经试过了,但是没有效果 $results = DB::table('kudos') ->select('kudos.description','kudoscategory.catname','kudoscategory.image','kudos.spid') ->join('kudoscategory', 'kudo

我有三张表,分别是荣誉表、荣誉分类表和特殊邮政表。我需要从这些表中获取数据,并使用where条件检查post id

我在这里附上了数据库表截图

我已经试过了,但是没有效果

$results = DB::table('kudos')
->select('kudos.description','kudoscategory.catname','kudoscategory.image','kudos.spid')
        ->join('kudoscategory', 'kudoscategory.id', '=', 'kudos.categoryid')
        ->where('kudos.spid', '=', $post_id)
        ->first();

        return $results;

我需要做的是使用下面的where条件获得结果
新闻提要\u特殊帖子。main\u post\u id=kudos.spid

您必须添加另一个加入
新闻提要\u特殊帖子的链接。
查询将类似于

$results = DB::table('kudos')
->select('kudos.description','kudoscategory.catname','kudoscategory.image','kudos.spid')
        ->join('kudoscategory', 'kudoscategory.id', '=', 'kudos.categoryid')
        ->join('newsfeed_special_posts', 'newsfeed_special_posts.main_post_id', '=', 'kudos.spid')
        ->where('kudos.spid', '=', $post_id)
        ->first();

        return $results;
虽然这对拉威尔来说不是一个好的做法。使用laravel雄辩的关系将更有效地获得这些结果。

您必须添加另一个加入
新闻提要\u特殊\u帖子的加入。
查询将类似于

$results = DB::table('kudos')
->select('kudos.description','kudoscategory.catname','kudoscategory.image','kudos.spid')
        ->join('kudoscategory', 'kudoscategory.id', '=', 'kudos.categoryid')
        ->join('newsfeed_special_posts', 'newsfeed_special_posts.main_post_id', '=', 'kudos.spid')
        ->where('kudos.spid', '=', $post_id)
        ->first();

        return $results;
虽然这对拉威尔来说不是一个好的做法。使用laravel雄辩的关系将更有效地获得这些结果。
你仍然可以这样做。由于要从3个表中获取所有记录,因此仍然可以有效地避免sql注入。看到上面的桌子,它没有正常化。不管怎样,我试试这个

    $results = DB::table('kudos')
    ->leftjoin('kudoscategory', 'kudoscategory.id', '=', 'kudos.categoryid')
    ->leftjoin('newsfeed_special_posts', 'newsfeed_special_posts.id', '=', 'kudos.spid')
    ->where('kudos.spid', '=', $post_id)
    ->first();

    return $results;

你仍然可以这样做。由于要从3个表中获取所有记录,因此仍然可以有效地避免sql注入。看到上面的桌子,它没有正常化。不管怎样,我试试这个

    $results = DB::table('kudos')
    ->leftjoin('kudoscategory', 'kudoscategory.id', '=', 'kudos.categoryid')
    ->leftjoin('newsfeed_special_posts', 'newsfeed_special_posts.id', '=', 'kudos.spid')
    ->where('kudos.spid', '=', $post_id)
    ->first();

    return $results;
你可以试试这个代码 首先,创建模型Kudos、KudosCategory、NewsfeedSpecialPosts

荣誉模型

public function kudoscategory_dta()
{
   return $this->belongsTo('App\Model\KudosCategory','categoryid');
}

public function newsfeed_special_posts_dta()
{
   return $this->belongsTo('App\Model\NewsfeedSpecialPosts','spid','main_post_id ');
}
控制器

Kudos::with('kudoscategory_dta','newsfeed_special_posts_dta')->first()

您可以尝试此代码 首先,创建模型Kudos、KudosCategory、NewsfeedSpecialPosts

荣誉模型

public function kudoscategory_dta()
{
   return $this->belongsTo('App\Model\KudosCategory','categoryid');
}

public function newsfeed_special_posts_dta()
{
   return $this->belongsTo('App\Model\NewsfeedSpecialPosts','spid','main_post_id ');
}
控制器

Kudos::with('kudoscategory_dta','newsfeed_special_posts_dta')->first()