为了账号安全,请及时绑定邮箱和手机立即绑定

路由不起作用,来自控制器的变量未定义

路由不起作用,来自控制器的变量未定义

PHP
人到中年有点甜 2022-10-28 15:50:46
后控制器public function index(){  $posts=Post::all();  return view('home')->with('posts', $posts);}网页.phpRoute::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\ViewExceptionUndefined variable: posts (View: C:\xampp\htdocs\lts\resources\views\home.blade.php)$posts未定义在刀片模板中使变量可选。替换{{ $posts }}为{{ $posts ?? '' }}感谢大家的帮助,我可以通过添加来修复它Route::get('/home', 'PostController@index');  我很想知道为什么这个问题是首先引起的,Route:: resource('posts','PostController');应该处理它。
查看完整描述

4 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

有两种方法可以做到这一点:


第一:


如果要HomeController用于/home路由,请在 HomeController 中添加以下代码。


家庭控制器:


public function index()

{

    $posts=Post::all();

    return view('home')->with('posts', $posts);

}

第二个


您已在'PostController' URL中使用了该resource方法,但您已使用. 所以改变你的路线是这样的:web.phpposts/home


在web.php


Route::get('/home', 'PostController@index')->name('home');

Route::resource('posts','PostController');


查看完整回答
反对 回复 2022-10-28
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

在您的控制器中更改


public function index()

    {

      $posts=Post::all();

     return view('home')->with('posts', $posts);

    }

改变你的刀片


@foreach($posts as $post)

    {{ $post['content'] }}

@endforeach


查看完整回答
反对 回复 2022-10-28
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

试试这个,而不是你给的 for 循环

@foreach($posts as $post)
    {{ $post->content}}
    @endforeach


查看完整回答
反对 回复 2022-10-28
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

尝试更换

return view('home')->with('posts', $posts);

return view('home', ['posts' => $posts]);

<p>{{$post['content']}}</p>

<p>{{ optional($post)->content }}</p>


查看完整回答
反对 回复 2022-10-28
  • 4 回答
  • 0 关注
  • 89 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信