Php laravel获取数据库中所有记录的文件名

Php laravel获取数据库中所有记录的文件名,php,sql,laravel,Php,Sql,Laravel,我想从我的所有记录中获取文件名字段的值,但我有这个错误。有人能帮我吗 我的代码: $acao=acao::where('estado_id','1') 如果($acao->count()>=1){ $filename=$acao->imagem; $path=asset('images/acoes/'。$filename); 返回视图('CFAE.index',压缩('path')->带ACOS($acao); }否则{ 返回视图('CFAE.index')->带有ACOS($acao); }

我想从我的所有记录中获取文件名字段的值,但我有这个错误。有人能帮我吗

我的代码:

$acao=acao::where('estado_id','1') 如果($acao->count()>=1){ $filename=$acao->imagem; $path=asset('images/acoes/'。$filename); 返回视图('CFAE.index',压缩('path')->带ACOS($acao); }否则{ 返回视图('CFAE.index')->带有ACOS($acao); }

laravel告诉我这个错误:

未定义的属性:Illumb\Database\Eloquent\Builder::$imagem


您应该使用
first()
方法获取对象:

$acao = Acao::where('estado_id', '1')->first();
您不使用它,因此得到的查询生成器实例没有
imagem
属性

此外,要检查是否找到对象,请执行以下操作:

if (!is_null($acao)) {
当你这样做的时候

$acao = Acao::where('estado_id', '1')->get();
您得到的是模型集合,而不是模型,因此需要执行以下操作

foreach($acao as $val)
{
   $val->imagem
}
或者你可以用

$acao = Acao::where('estado_id', '1')->first();

$acao=acao::where('estado_id','1')的值是多少;fetches?其目的是查找所有estado_id=1的记录如果我执行$acao=acao::where('estado_id','1')->first(),我将拥有所有具有该条件的记录(estado_id=1)@Nuno否,您将获得一个对象。@AlexeyMenezin ok,以及我需要如何获得所有具有该条件(estado_id=1)的记录以获得一个集合,你需要使用
get()
而不是
first()
,但是你需要对集合中的每个对象进行迭代来执行操作。你能给我举个例子吗?如果我使用$acao=acao::where('estado_id','1')->first(),我将拥有所有具有该条件的记录(estado_id=1)?否仅第一个记录对象要获取所有记录,请使用get();然后进行迭代,如我的示例中所示