我是laravel的新手,尽管尝试了所有可能的网站和Google搜索,但仍收到此错误。我什至从堆栈溢出中尝试了以前的查询解决方案,但无法解决。
这是我的PostController.php:
`public function getData()
{
$post['post']=DB::table('students')->get();
if(count($post)>0){
return view('index',['Post'=>'$post'] );
}
else{
return view('index');
}
}`
this is my controller
这是我的index.blade.php:
`@foreach($post as $value)
<tr>
<td>{{$value->id}}</td>
<td>{{$value->name}}</td>
<td>{{$value->address}}</td>
<td>{{$value->number}}</td>
<td><a href="" ><button>Edit</button></a> <a href="" >
<button>Delete</button></a></td>
</tr>`
这是我的刀刃:
Route::get('/index','PostController@getData');
这是我的路线
请在此查询中提供帮助,我遇到很多问题
答案 0 :(得分:2)
您的代码有很多问题。我建议您通过laravel documentation和first 2 PSRs
由于错误明确指出,视图中没有变量 $ post 。否则,您不会发送 $ post 变量,而如果您发送的$ post变量带有大写字母P,但在视图中使用小写p进行访问。因此,该变量在视图中无论如何都不可用,这就是它显示该错误的原因。
PHP变量区分大小写,并且不要在传递给视图的参数中使用php变量(带$符号的引号)。
return view('index',['Post'=>'$post'] );
以上声明应写为
return view('index',['post'=>$post] );
还会更新您的控制器方法,我不知道您为什么要使用关联数组($ post ['post'])。
public function getData()
{
$post = DB::table('students')->get();
return view('index',['post'=>'$post'] );
}
答案 1 :(得分:0)
我发现了这个问题。您在 index 函数中发送 posts 变量。
public function index(){
$posts = Post::all();
return view('posts.index',compact('posts'));
}
但是最有可能是你想新建帖子的时候遇到这个错误,所以这里执行的是store函数,而controller中没有执行index函数,因为store函数是负责存储表单信息的。然后你编辑这个函数如下。
public function store(Request $request) {
$post = new Post();
$post->title = $request->input("title");
$post->description = $request->input("description");
$post->save();
$posts = Post::all(); //Send posts in compact
return view("posts.index", compact($posts));
}
请原谅我打字的问题,我会说波斯语❤