Php 拉维5.3返回?在哪里雄辩

Php 拉维5.3返回?在哪里雄辩,php,mysql,laravel,Php,Mysql,Laravel,我在Laravel5.3上使用where query成功地创建了许多函数,但这次发生了一些奇怪的事情 public function show($id){ $artikel = Artikel::select('artikel.*','kategori.kategori_id','kategori.kategori_nama','users.name','users.user_photo','users.biodata') ->join('kategori'

我在Laravel5.3上使用where query成功地创建了许多函数,但这次发生了一些奇怪的事情

public function show($id){
    $artikel = Artikel::select('artikel.*','kategori.kategori_id','kategori.kategori_nama','users.name','users.user_photo','users.biodata')
            ->join('kategori','artikel.kategori_id','=','kategori.kategori_id')
            ->join('users','user_id','=','id')
            ->orderBy('view','desc')
            ->find($id);
    $kategori = Kategori::all();
    $sub = Artikel::select('kategori_id')->where('artikel_id',$id)->toSql();
    dd($sub);
    $related = Artikel::where('kategori_id','=',$sub)
                ->get();
    dd($related);
    if($artikel == null ){
        $artikel = new Artikel; 
        $artikel->pesan=0;

        foreach ($artikel as $post) {
            $this->putInCache( $post->slug, $post, 'artikel' );
        }
        return view('artikel.show')->with('artikel',$artikel)->with('kategori',$kategori);
    }

    $artikel->view+=1;
    $artikel->save();

    return view('artikel.show')->with('artikel',$artikel)->with('kategori',$kategori)->with('related',$related);
}
该方法在第8行输出一个错误。第9行的dd返回

"select `kategori_id` from `artikel` where `artikel_id` = ?"
我已尝试将查询更改为

$sub = Artikel::select('kategori_id')->where('artikel_id','=',1)->toSql();
还有更多,但仍然有一个错误。那条线回来了?关于where子句。请帮帮我

谢谢大家!

UPADTE 1

现在代码是这样的:

$related = Artikel::where('kategori_id','=','select kategori_id from artikel where artikel_id = 1')
                ->get();
结果返回空集合

收集{272▼ 项目:[] }

这不是一个错误。toSql方法显示了什么?在查询中签名而不是值

此方法非常适合快速查看SQL。然而,事实并非如此 包括查询绑定,仅包含?因为他们要去哪里 插入。根据绑定的复杂性,这可能是 足够的信息供您调试它


我已经找到了工作。代码如下:

$sub = DB::raw('(select kategori_id from artikel where artikel_id =1)');
    $related = DB::table('artikel')->select('*')->where('kategori_id','=',($sub))->get();
    dd($related);

您得到的确切错误/异常是什么?@Danu Akbar toSql将不会返回完整查询,因为bind参数。使用->获取而不是->toSql。这将向您显示输出。@phaberestexactly@Manish现在我像这样编辑代码:$related=Artikel::where'kategori_id'、'='、'select kategori_id from Artikel where Artikel_id=1'->get;返回的是集合{272▼ items:[]}@Danu Akbar使用whereRaw而不是where。以下是您可以使用的示例。[ [