Laravel 5.4 Eloquent没有返回对象,它作为数组返回

时间:2018-01-18 17:47:07

标签: php database laravel-5.4

我试图使用雄辩的查询从模型中获取数据。而不是返回一个对象,它返回一个数组。代码如下所示。

    public function showConversation($id,$cid){
    $conversation=conversation::where('from',$id)->orWhere('to',$id)->orderBy('created_at','desc')->get()->all();
    $message=message::where('conversation_id',$cid)->orderBy('created_at','desc')->get();        
    $key='conversation';
    dd($message->id);
    return view('inbox')->with('conversation',$conversation)->with('message',$message)->with('key',$key);
}

这个在dd $消息中无法作为$ message-> id访问,它显示错误是试图获取非对象的属性。但是当我们使用$ message [0] - > id时,它是可访问的。我们想要它的对象。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您将数据检索为数组。如果您希望仅收到一条消息,则应尝试以下代码:

public function showConversation($id,$cid){ $conversation=conversation::where('from',$id)->orWhere('to',$id)->orderBy('created_at','desc')->get()->all(); $message=message::where('conversation_id',$cid)->orderBy('created_at','desc')->first();
$key='conversation'; dd($message->id); return view('inbox')->with('conversation',$conversation)->with('message',$message)->with('key',$key); }

简而言之: 使用->first()而不是->get()