【问题标题】:views content displaying on browser in Laravel 5在 Laravel 5 中查看浏览器上显示的内容
【发布时间】:2015-04-13 08:20:39
【问题描述】:

我的文件 authorsController.php 包含以下代码:

<?php namespace App\Http\Controllers;

class authorsController extends HomeController {
    public function get_index() {
        return View::make('authors.index', array('name'=>'James'));
    }
}

我的文件 routes.php 包含:

Route::get('authors', array('uses'=>'authorsController@get_index'));

最后,我的文件 authors.index.blade.php 包含:

<?php echo $name; ?>

这应该在浏览器上显示“James”,但显示错误:

未定义变量:名称

我也试过用{{$name}}代替echo语句来显示变量$name的值,但是浏览器上显示的是代码{{$name}}而不是值'James'

请问,是不是我做错了什么?

【问题讨论】:

  • get_index方法的开头添加dd('test');,确保你真的执行了这个控制器
  • 你需要在View门面加上一个反斜杠,比如\View
  • 嗨,Marcin,我按照你的建议做了,我的控制器页面现在看起来像这样:public function get_index(){ dd('test'); return \View::make('authors.index', array('name'=&gt;'James')); } 但它仍然是一样的,没有区别

标签: laravel blade laravel-routing laravel-5


【解决方案1】:
authors.index.blade.php

这有效吗?视图中的假点表示法是一个目录。它正在寻找 /authors/index.blade.php 而不是 authors.index.blade.php。更新您的视图名称以匹配并查看是否可以修复它。

return view('authors.index')->with(['name' => $name]);

这会在 views/authors/ 目录中查找 index.blade.php,并且会正确地回显 {{ $name }},因为它正在通过 Blade 运行。

目录结构为: -/资源

  • /视图

    • /作者/

      • index.blade.php

【讨论】:

  • 我的索引页实际上是在视图中的作者文件夹中,我认为这不是问题。我还使用您提供的代码更新了我的 authorsController 页面,它仍然无法正常工作。
  • @user3554843 是位于 /authors/ 的文件,名为 index.blade.php 还是 authors.index.blade.php?另外 - 你的控制器不需要扩展 HomeController,它应该只是扩展 Controller。
  • 该文件位于 /authors/ 并命名为 index.blade.php。我已将代码更改为扩展 Controller 而不是 HomeController。一样的。感谢您的帮助
【解决方案2】:

Laravel 5 使用 {!! $name !!} 试试看。

【讨论】:

    猜你喜欢
    • 2015-09-15
    • 2020-11-10
    • 1970-01-01
    • 2014-06-08
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    • 2016-01-25
    • 2021-07-06
    相关资源
    最近更新 更多