我有一个包含列ID的表,有三个文本字段,型号名称为Post
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->increments('id');
$table->string('title', 256);
$table->string('slug', 256);
$table->text('body');
$table->timestamps();
});
}
从此表中获取数据并从控制器返回有说服力的对象并查看为<p>{{$post}}</p>
时,它很好,但在访问属性标题为<p>{{$post->title}}</p>
时会出现错误
class BlogController extends Controller
{
public function single($slug){
$post = Post::where('slug', '=', $slug)->get();
//return $post;
return view('posts.single')->withPost($post);
}
}
错误:
Property [title] does not exist on this collection instance
答案 0 :(得分:1)
你应该得到第一个元素而不是集合:
public function single($slug){
$post = Post::where('slug', '=', $slug)->first();
//return $post;
return view('posts.single')->withPost($post);
}
因为即使您的查询可以,
get
也会始终返回一个集合 只返回一行,first
返回单个模型实例