路由不工作,来自控制器的变量未定义
Routes are not working, variable from controller are coming up as undefined
后控制器
public function index()
{
$posts=Post::all();
return view('home')->with('posts', $posts);
}
web.php
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Route::resource('posts','PostController');
家
@foreach($posts as $post)
<p>{{$post['content']}}</p>
@endforeach
我收到这个错误
Facade\Ignition\Exceptions\ViewException
Undefined variable: posts (View: C:\xampp\htdocs\lts\resources\views\home.blade.php)
$posts
未定义
在 blade 模板中将变量设为可选。将 {{ $posts }}
替换为 {{ $posts ?? '' }}
感谢大家的帮助,我可以通过添加
来修复它
Route::get('/home', 'PostController@index');
我很想知道为什么首先会出现这个问题Route:: resource('posts','PostController');
应该已经解决了。
试试这个而不是你给循环的东西
@foreach($posts as $post)
{{ $post->content}}
@endforeach
尝试更换
return view('home')->with('posts', $posts);
和
return view('home', ['posts' => $posts]);
和
<p>{{$post['content']}}</p>
和
<p>{{ optional($post)->content }}</p>
改变你的控制器
public function index()
{
$posts=Post::all();
return view('home')->with('posts', $posts);
}
你的blade
有变化
@foreach($posts as $post)
{{ $post['content'] }}
@endforeach
有两种方法可以做到这一点:
第一个:
如果你想为 /home
路由使用 HomeController
然后在 HomeController 中添加以下代码。
家庭控制器:
public function index()
{
$posts=Post::all();
return view('home')->with('posts', $posts);
}
第二个
你在web.php
中使用了resource
方法所以你的'PostController'URL从posts
开始但是你使用了/home
.
所以像这样改变你的路线:
在web.php
Route::get('/home', 'PostController@index')->name('home');
Route::resource('posts','PostController');
后控制器
public function index()
{
$posts=Post::all();
return view('home')->with('posts', $posts);
}
web.php
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Route::resource('posts','PostController');
家
@foreach($posts as $post)
<p>{{$post['content']}}</p>
@endforeach
我收到这个错误
Facade\Ignition\Exceptions\ViewException
Undefined variable: posts (View: C:\xampp\htdocs\lts\resources\views\home.blade.php)
$posts
未定义
在 blade 模板中将变量设为可选。将 {{ $posts }}
替换为 {{ $posts ?? '' }}
感谢大家的帮助,我可以通过添加
来修复它Route::get('/home', 'PostController@index');
我很想知道为什么首先会出现这个问题Route:: resource('posts','PostController');
应该已经解决了。
试试这个而不是你给循环的东西
@foreach($posts as $post)
{{ $post->content}}
@endforeach
尝试更换
return view('home')->with('posts', $posts);
和
return view('home', ['posts' => $posts]);
和
<p>{{$post['content']}}</p>
和
<p>{{ optional($post)->content }}</p>
改变你的控制器
public function index()
{
$posts=Post::all();
return view('home')->with('posts', $posts);
}
你的blade
有变化@foreach($posts as $post)
{{ $post['content'] }}
@endforeach
有两种方法可以做到这一点:
第一个:
如果你想为 /home
路由使用 HomeController
然后在 HomeController 中添加以下代码。
家庭控制器:
public function index()
{
$posts=Post::all();
return view('home')->with('posts', $posts);
}
第二个
你在web.php
中使用了resource
方法所以你的'PostController'URL从posts
开始但是你使用了/home
.
所以像这样改变你的路线:
在web.php
Route::get('/home', 'PostController@index')->name('home');
Route::resource('posts','PostController');