

新闻资讯
技术学院laravel 中控制器传递的变量名与 blade 模板中使用的变量名不一致,会导致数据无法渲染——本例中控制器传入的是 `$marketthr
eads`,但模板却尝试访问未定义的 `$thread`,从而页面空白。
在 Laravel 的资源控制器(Resource Controller)中,show() 方法默认接收一个已通过隐式路由模型绑定(Implicit Route Model Binding)解析的模型实例。你当前的控制器方法签名如下:
public function show(Marketthreads $marketthreads)
{
return view('marketplace.details', compact('marketthreads'));
}这里有两个关键点需要注意:
✅ 正确的 details.blade.php 写法应为:
id) }}">
{{ $marketthreads->subject }}
{{ \Illuminate\Support\Str::limit($marketthreads->thread, 100) }}
ID: {{ $marketthreads->id }}
⚠️ 注意事项:
Route::bind('marketthreads', function ($value) {
return App\Models\Marketthreads::findOrFail($value);
});? 总结:Laravel 视图中使用的变量名必须与控制器 compact() 或 with() 中传入的键名完全一致。变量名不匹配是导致“数据能存不能读”类问题最常见的原因——请始终检查控制器传参名与 Blade 中取值名的一致性。