我执行此更新语句,效果很好。
$g = Group::where([['id', $idgroup], ['admin', $currentUser]]);
$g->update(['admin' => $iduser]);
此语句后,我需要来自Group对象的字段名称。但是,使用以下语句,我得到了Undefined属性:Illuminate \ Database \ Eloquent \ Builder :: $ name。
$groupname = $g->name;
组是我的模型(数据库表),其中包含字段ID,名称,admin。如何从该对象获取字段名称?
谢谢
答案 0 :(得分:0)
没有查找器,它将返回一个查询生成器,但是当您需要获取模型实例时,请在其上应用get
(对于模型Collection)或first
(对于单个模型实例)查询生成器。对于您的情况,您需要像这样调用first()
方法
$g = Group::where([['id', $idgroup], ['admin', $currentUser]])->first();
$g->update(['admin' => $iduser]);
那你就可以做
$groupname = $g->name;
您可以在此处查看retrieving model的详细信息
答案 1 :(得分:0)
如果要从数据库中获取一条记录,请使用first()
:
$g = Group::where([['id', $idgroup], ['admin', $currentUser]])->first();
$g->name; //it will output name
或
如果要从数据库获取所有记录,请使用get()
:
$groups = Group::where([['id', $idgroup], ['admin', $currentUser]])->get();
要从此处获取名称,您将必须运行循环,因为get()
将返回一个集合
foreach($groups as $g){
$g->name; //it will give name
}
答案 2 :(得分:0)
您的$ g变量是一个Illuminate \ Database \ Eloquent \ Builder,它代表一个查询,而不是单个对象,这意味着它不具有Group属性。 $ g下很可能有多个记录,您有两个选项可检索所有这样的名称字段
$g->pluck('name')
这将为您提供所有名称的集合,或者,如果您确定只有一个对象,则可以执行$ g-> first()-> name,它将为您提供第一个对象的名称(如果您确定只有一个对象则只有一个)