Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 路由不工作,来自控制器的变量显示为未定义_Php_Laravel_Routing_Laravel Routing - Fatal编程技术网

Php 路由不工作,来自控制器的变量显示为未定义

Php 路由不工作,来自控制器的变量显示为未定义,php,laravel,routing,laravel-routing,Php,Laravel,Routing,Laravel Routing,后置控制器 公共功能索引() { $posts=Post::all(); 返回视图('home')->带有('posts',$posts); } web.php 路由::get('/',函数(){ 返回视图(“欢迎”); }); Auth::routes(); 路由::get('/home','HomeController@index')->名称('home'); 路由::资源('posts','PostController'); 家 @foreach($posts as$post) {{$

后置控制器

公共功能索引()
{
$posts=Post::all();
返回视图('home')->带有('posts',$posts);
}
web.php

路由::get('/',函数(){ 返回视图(“欢迎”); }); Auth::routes(); 路由::get('/home','HomeController@index')->名称('home'); 路由::资源('posts','PostController'); 家

@foreach($posts as$post)
{{$post['content']}

@endforeach
我得到这个错误

Facade\Ignition\Exceptions\ViewException

Undefined variable: posts (View: C:\xampp\htdocs\lts\resources\views\home.blade.php)
$posts
未定义

在刀片模板中使变量成为可选变量。将
{{$posts}}
替换为
{{{$posts???''}}

谢谢大家的帮助,我通过添加

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

我想知道为什么这个问题首先是由
Route::resource('posts','PostController')引起的应该已经处理过了。

试试这个,而不是你为循环所做的

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

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

@foreach($posts as $post)
    {{ $post->content}}
@endforeach
试着替换

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

{{$post['content']}

{{可选($post)->content}

尝试更换

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

{{$post['content']}

{{可选($post)->content}


控制器中的技术

public function index()
    {
      $posts=Post::all();
     return view('home')->with('posts', $posts);
    }
换刀

@foreach($posts as $post)
    {{ $post['content'] }}
@endforeach

控制器中的错误

public function index()
    {
      $posts=Post::all();
     return view('home')->with('posts', $posts);
    }
换刀

@foreach($posts as $post)
    {{ $post['content'] }}
@endforeach

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

第一个:

如果要将
HomeController
用于
/home
路由,请在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');

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

第一个:

如果要将
HomeController
用于
/home
路由,请在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');


您确定要从
Posts
表中获取变量吗?因此,通过添加以下路由::get('/home','PostController@index'); 路由前::资源('posts','PostController');索引函数似乎正在工作。这不应该用Route::resource('posts','PostController')来处理吗;你从哪里得到这个错误<代码>PostController@index
显示
home.blade
,以及
HomeController@index
。您的
HomeController
中是否设置了
$posts
homecontroller@HaseebAhmed哪个控制器用于检索post?PostController或HomeController。您确定要从
Posts
表中获取变量吗?因此,通过添加以下路由::get('/home','PostController@index'); 路由前::资源('posts','PostController');索引函数似乎正在工作。这不应该用Route::resource('posts','PostController')来处理吗;你从哪里得到这个错误<代码>PostController@index显示
home.blade
,以及
HomeController@index
。您的
HomeController
中是否设置了
$posts
homecontroller@HaseebAhmed哪个控制器用于检索post?PostController或HomeController。
{$post['content']}
更改此设置。当“$posts未定义”
返回视图('home')->带有('posts',$posts)时,这有何帮助
{$post['content']}或{{$post->content}}
{$post['content']}}
更改此设置。当“$posts未定义”
返回视图('home')->带有('posts',$posts”)时,这有什么帮助{{$post['content']}}或{{{$post->content}你能确认你正在点击这个控制器吗?公共函数索引(){dd('expected controller is executing');$posts=Post::all();返回视图('home')->with('posts',$posts);}您能确认您正在点击这个控制器吗?公共函数索引(){dd('expected controller is executing');$posts=Post::all();返回视图('home')->with('posts',$posts);}@HaseebAhmed您使用哪种方法?第一个或第二个。看起来这就是问题所在,在主页上检索帖子是个坏主意?@HaseebAhmed你是对的,第二个方法更准确。@HaseebAhmed哪种方法适合你?第一个还是第二个。看起来这就是问题所在,在主页上检索帖子是个坏主意?@HaseebAhmed你是对的,第二个方法更准确。