You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Eloquent Builder实例报错title不存在,如何单取About表title列?

问题解决方法

首先明确报错原因:你写的About::orderBy('created_at', 'desc')只是生成了一个查询构造器对象,并没有实际执行数据库查询;就算加上get()执行查询,返回的也是包含多条数据的集合,集合本身没有title属性,直接访问自然报错。

下面给你两种不用foreach的解决方案,根据你的需求选择:


情况1:只想获取最新一条记录的title

可以用first()直接获取排序后的第一条数据,同时用select('title')只查询title列,减少数据库开销:
控制器代码:

// 只查title列,按创建时间倒序取第一条
$about = About::select('title')->orderBy('created_at', 'desc')->first();
return view('about')->with('about', $about);

视图中调用(用可选链式调用避免无数据时报错):

{{ $about?->title }}

情况2:需要获取所有记录的title,但不想用foreach循环

可以用pluck('title')直接提取所有title组成集合,再用implode拼接成字符串输出:
控制器代码:

// 提取所有title,按创建时间倒序排序
$aboutTitles = About::orderBy('created_at', 'desc')->pluck('title');
return view('about')->with('aboutTitles', $aboutTitles);

视图中直接输出拼接后的内容(这里用逗号分隔,你可以换成其他分隔符):

{{ $aboutTitles->implode(', ') }}

内容的提问来源于stack exchange,提问作者Dave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 08:59:14