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

Laravel报错:Attempt to read property "titulo" on string 求助

解决Laravel中「Attempt to read property "titulo" on string」错误

问题根源

你遇到的错误是因为视图中使用的$nombrePregunta不是Preguntas模型实例,而是URL里的slug字符串。直接对字符串调用->titulo这类属性自然会触发错误。

分步解决方案

1. 给控制器方法参数声明模型类型

在paginaControlador的gestionPregunta方法中,必须给参数指定Preguntas模型类型,让Laravel自动完成路由模型绑定:

use App\Models\Preguntas;

public function gestionPregunta(Preguntas $nombrePregunta)
{
    // 此时$nombrePregunta已经是查询到的模型实例
    return view('preguntas', compact('nombrePregunta'));
}

2. 确认路由配置有效性

你的路由写法/preguntas/{nombrePregunta:slug}是正确的,但要确保:

  • Preguntas模型对应的数据库表存在slug字段
  • 路由指向的控制器类和方法名称完全匹配

3. 配置模型路由键(按需)

如果Preguntas模型默认不是用slug作为路由绑定的匹配字段,需要在模型中显式设置:

class Preguntas extends Model
{
    // ...其他模型代码

    public function getRouteKeyName()
    {
        return 'slug';
    }
}

4. 排查视图传参逻辑

确认控制器中没有对$nombrePregunta做额外的字符串转换操作,直接将模型实例传递给视图即可。

验证方式

在控制器方法中添加dd($nombrePregunta),如果输出是字符串,说明路由模型绑定未生效;如果是Preguntas对象,就可以正常访问titulo、categorias->nombre等属性。

内容的提问来源于stack exchange,提问作者Luz Serrano Díaz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 13:25:31