public function welcome()
{
$posts = new Post;
$data = $posts->data();
return view('welcome', compact("data"));
}
发布模型中的方法:
public function data()
{
return ['name ' => 'ABC', 'company'=> 'com'];
}
这是控制器
{{ $data['name'] }}
{{ $data['company'] }}
这是视图
我已将值从控制器传递给视图,并得到未定义的变量错误
答案 0 :(得分:2)
首先$ posts = new Post不会返回数据,而是返回Post类的实例,而是查找类似这样的帖子。
$posts = Post::find(1);
您可以像这样
public function welcome()
{
$posts = Post::find(1);
$data['data'] = $posts->my_relationship;
return view('welcome', $data);
}
并在视图中调用它
{{$data->name}}
{{$data->company}}
假设my_relationship是附加到您的帖子模型的关系。否则,您可以直接将该帖子传递给视图。像这样
public function welcome()
{
$posts = Post::find(1);
$data['data'] = $posts;
return view('welcome', $data);
}
假设姓名和公司字段位于您的帖子表中
答案 1 :(得分:0)
将模型中的功能更改为此。
public function scopeData() {
return ['name ' => 'ABC', 'company'=> 'com'];
}
像这样在您的控制器中调用它。
public function welcome()
{
$post = Post::data();
$data['data'] = $post;
return view('welcome', $data);
}
答案 2 :(得分:0)
您的name
方法(data()
中的索引'name '
中有一个空格。这不会产生undefined variable error
,但是,当您尝试访问Undefined index
而不是视图中的'name'
时,它将产生'name '
错误。
要解决此问题,您只需能够在data()
方法中删除空格:
public function data()
{
return ['name' => 'ABC', 'company'=> 'com'];
}