Laravel 未定义变量:名称 我将数据从控制器推送到视图时遇到困难。下面是我的代码脚本。
我使用artisan创建了我的控制器Laravel 未定义变量:名称 我将数据从控制器推送到视图时遇到困难。下面是我的代码脚本。,laravel,laravel-5,Laravel,Laravel 5,我使用artisan创建了我的控制器ListController php artisan make:controller ListController ListController-show方法 <?php namespace App\Http\Controllers; use Illuminate\Http\Request; class ListController extends Controller { public function listNames()
ListController
php artisan make:controller ListController
ListController-show方法
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ListController extends Controller
{
public function listNames()
{
$names = array(
'Daenerys Targaryen',
'Jon Snow',
'Arya Stark',
'Melisandre',
'Khal Drogo'
);
return view('welcome', ['names' => $names]);
}
}
然后,为它添加适当的路由(routes.php)
到目前为止,我尝试了以下方法:
在控制器中:
return view('welcome', compact('names')); --> DOESN'T WORK
return view('welcome', $names); --> DOESN'T WORK
return view('welcome')->with($names); --> DOESN'T WORK
return view('welcome')->with('names', $names); --> DOESN'T WORK
在视图中对数组进行硬编码并为其指定一个变量是有效的
<?php $names = array('John Snow', 'Arya Stark');?>
<?php foreach ($names as $n):?>
<tr>
<td><?php echo $n;?></td>
</tr>
<?php endforeach;?>
我似乎看不出这个问题。非常感谢您的帮助。您应该使用数组传递变量:
return view('welcome', ['names' => $names]);
或者只是:
return view('welcome', compact('names'));
要选中它,请在视图中执行此操作:
{{ dd($names) }}
应使用数组传递变量:
return view('welcome', ['names' => $names]);
或者只是:
return view('welcome', compact('names'));
要选中它,请在视图中执行此操作:
{{ dd($names) }}
首先,像Alexey说的那样传递变量
返回视图('welcome',['names'=>$names])代码>
然后,在视图上,执行以下操作
@foreach($n名称)
这是名字{{$n}
@endforeach
这里的文档:首先,按照Alexey所说的传递变量
返回视图('welcome',['names'=>$names])代码>
然后,在视图上,执行以下操作
@foreach($n名称)
这是名字{{$n}
@endforeach
此处的文档:已设法解决此问题。
在花了这么多时间寻找bug之后,我试图检查laravel版本是否与此有关。routes.php
在LaravelV5.3+
中不起作用,我使用的是LaravelV5.4.x
路由在一个名为routes
的目录中可用,因此我将代码从routes.php
粘贴到routes/web.php
并且它起作用了
<?php
Route::get('/', 'ListController@listNames');
设法解决了该问题。
在花了这么多时间寻找bug之后,我试图检查laravel版本是否与此有关。routes.php
在LaravelV5.3+
中不起作用,我使用的是LaravelV5.4.x
路由在一个名为routes
的目录中可用,因此我将代码从routes.php
粘贴到routes/web.php
并且它起作用了
<?php
Route::get('/', 'ListController@listNames');
为什么您不在刀片视图中使用刀片?这是非常随机的,但您在任何地方都没有重复的项目,是吗?只是您的错误表明您的文件在一个MAMP目录中,但您仍然在使用php artisan serve命令,如果您正在运行MAMP,您实际上不需要使用该命令。可能很难,但我想问一下,我不需要使用php artisan serve
,我还有其他项目在MAMP上运行。但是,它只是让我的生活更容易与artisan:)为什么你不使用刀片在您的刀片视图虽然?这是非常随机的,但你没有一个重复的项目在任何地方,你呢?只是您的错误表明您的文件在一个MAMP目录中,但您仍然在使用php artisan serve命令,如果您正在运行MAMP,您实际上不需要使用该命令。可能很难,但我想问一下,我不需要使用php artisan serve
,我还有其他项目在MAMP上运行。但是,它只是让我的生活更容易与工匠:)谢谢。我已经尝试了以上所有操作,但仍然显示相同的错误未定义变量
是,我确实更改为列表名
。同样的事情,显示同样的错误。@h4kl0rd请显示所有路由,可能有冲突。您是否显示了整个欢迎
视图,或者只是其中的一部分?我已经用最新的更新更新了我的问题。请参考问题。@h4kl0rd您的代码看起来不错。我唯一想做的就是用php-artisan-route:clear
和php-artisan-view:clear
清除路由和查看缓存。谢谢。我已经尝试了以上所有操作,但仍然显示相同的错误未定义变量
是,我确实更改为列表名
。同样的事情,显示同样的错误。@h4kl0rd请显示所有路由,可能有冲突。您是否显示了整个欢迎
视图,或者只是其中的一部分?我已经用最新的更新更新了我的问题。请参考问题。@h4kl0rd您的代码看起来不错。我唯一想做的就是用php-artisan-route:clear
和php-artisan-view:clear
.route.php>route::get(“/”,)来清除路由和查看缓存ListController@listNames');代码>和控制器方法更改为listNames()
。我还删除了php脚本并使用了blade格式。我认为问题不在于使用刀片格式,因为在视图中定义数组变量会加载名称。但是,当我尝试从控制器推送数据时,它显示未定义变量
错误。请尝试删除缓存。。。值得一试。。。php artisan视图:clearRoute.php>Route::get('/','ListController@listNames');代码>和控制器方法更改为listNames()
。我还删除了php脚本并使用了blade格式。我认为问题不在于使用刀片格式,因为在视图中定义数组变量会加载名称。但是,当我尝试从控制器推送数据时,它显示未定义变量
错误。请尝试删除缓存。。。值得一试。。。php artisan视图:清除