向视图传递数据 - 未定义的变量

3

我是 Laravel 框架的新手,目前遇到了一个问题困扰我好几天了。

我只是想将一个简单的变量传递到 Blade 视图中,但是我在任何文档或者此平台上找到的版本都没有得到解决方案。

我创建了一个路由,看起来像这样:

Route::get('test', 'PageController@index');

PageController中的代码如下:

public function index(){
   $datatopass='datahere';
   return view('admin.test', compact('datatopass'));
}

然后我得到了以下这个样子的视图:
@section('content')
{{$datatopass}}
@stop

问题在于我得到了两个异常:
# 在d9e848d01f99ac2368ead804bd322152的第3行中引发ErrorException:
未定义变量:datatopass(视图:/home/vagrant/test/resources/views/admin/test.blade.php)
# 在d9e848d01f99ac2368ead804bd322152的第3行中引发ErrorException: 未定义变量:datatopass
我正在使用设置在VirtualBox中的homestead开发环境。
你有什么想法我做错了什么吗?
我真的尝试了每一种数据传递方式。
return view('test')->with('datatopass', $datatopass)` 
//or
return view('datatopass', $datatopass)

我很感激您的帮助。

等等。


奇怪的是,->with()compact 应该可以工作。你试过在返回视图之前加上 dd($datatopass) 吗?它显示了什么? - Björn
你确定你没有在 PageController 以外的其他地方加载这个视图吗? - Armen Markossyan
是的,测试页面只是由PageController启动。至于dd()函数:这里没有输出。我调用得对吗。PageController public function index(){ $datatopass='datahere'; dd($datatopass); } - Alexander Donauer
尝试执行 php artisan view:clear 命令以重置视图缓存。 - Maxim Lanin
view 命名空间在 php artisan 中没有被定义。 - Alexander Donauer
显示剩余3条评论
1个回答

2
尝试这样做:
return view('test')->with('datatopass', $datatopass);

在View中,可以这样访问:

<?php echo $datatopass ?>

1
谢谢。但我已经解决了这个问题。我的 route.php 有些问题,所以数据没有传递到正确的视图。 - Alexander Donauer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接