【问题标题】:PHP Laravel - Returning view from a sub-directoryPHP Laravel - 从子目录返回视图
【发布时间】:2020-03-16 18:09:45
【问题描述】:

我试图从子目录返回一个视图,但是当使用下面的代码时,我收到错误“未定义的变量:文件夹 1”

Route::get('/', function () {
return view("folder1/page1");
});

Route::get('/', function () {
return view("/folder1/page1");
});

Route::get('/', function () {
return view("folder1.page1");
});

视图“page1”位于名为folder1的文件夹中,例如...

如何返回不在同一目录中的视图?

【问题讨论】:

  • 这个错误与你的子文件夹无关,它与你page1.blade.php文件中的变量调用$products有关
  • @ChamaraAbeysekara 等一下。你怎么知道的?
  • 只是阅读错误!

标签: php laravel


【解决方案1】:

在 laravel 中,默认情况下视图存储在 resources/views 目录中。您的观点,page1.blade.php 文件位于resources/views/folder1 目录中。要返回视图,我们可以使用全局的view helper,如下所示,

return view('folder1.page1');

对于上述情况,您可以这样做

Route::get('/',function(){
  return view('folder1.page1');
});

如果你想将数据传递到视图中,有很多方法可以做到这一点, 你可以用这个

$data1= 'Sample data 1';
return view('folder1.page1',['data1'=>$data1]);

或者

$data1 = 'Sample data 1';
returnn view('folder1.page1')->with('data1',$data1);

或者

$data1 = 'Sample data 1';
return view('folder1.page1')->compact('data1');

或者

$data1 = 'Sample data 1';
return view('folder1.page1',compact('data1'));

【讨论】:

    【解决方案2】:

    你可以尝试如下

    Route::get('/', function () {
       return view("folder1.page1",compact('products'));
    });
    

    【讨论】:

      【解决方案3】:

      问题不在于视图本身,问题在于您没有将view 传递给它在视图中使用的$product 变量以呈现来自一个/多个产品的数据。

      试试这样的:

      Router::get('/', function() {
        return view('folder1.page1', ['products' => App\Product::all()]);
      }
      

      【讨论】:

        猜你喜欢
        • 2018-02-06
        • 2023-03-28
        • 2019-07-13
        • 2016-05-16
        • 1970-01-01
        • 2014-09-03
        • 2015-10-15
        • 2020-06-07
        • 2014-11-18
        相关资源
        最近更新 更多