php - LARAVEL 7,未定义的变量,无法将变量从控制器传递到视图
问题描述
我是 Laravel 的新手,我按照本教程制作了一个 CRUD:
https://appdividend.com/2020/03/13/laravel-7-crud-example-laravel-7-tutorial-step-by-step/
首先我是自己做的,然后我只是从 GitHub 上复制了代码,在这两种情况下我都进入了@foreach 中的变量:
Facade\Ignition\Exceptions\ViewException 未定义变量:coronacases
我搜索了一下并尝试了其他一些没有运气的解决方案,所以我开始了一个只有索引功能的新项目,以查看数据是否从控制器传递到视图。
这是我的代码,控制器:
// TestController
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class TestController extends Controller
{
public function index()
{
$name = 'hugo';
return view('test', compact('name'));
}
在控制器中测试的替代 sintaxys:
/***
* return view('/test', compact('name'));
* return view('name', ['name' => 'James']); with out $name = 'hugo'; earier.
* return view('test', $name]);
* return view('test')->with('name', $data);
* return view('test')->with('name', 'hugo'); with out $name = 'hugo'; earier.
* other solutions tryed here dosnt seems to change anything.
***/
路线:
Route::get('/', function () {
return view('test');
});
Route::resource('test', 'TestController');
测试的替代路线:
/***
* Route::get('/test', 'TestController@index');
*
* Route::get('/', function () {
* return view('test', ['name' => 'James']);
*}); //this one worked, but its not getting data from Controller, so its now what i need
*
*Route::get('/', function () {
* return view('test', ['name' => $data]);
*}); //didnt work
*
***/ // I think that the problem is here, im having trouble understanding Routes at Laravel Docs
看法:
<html>
<body>
<h1>Hello, {{ $name }}</h1>
</body>
</html>
还尝试过查看:
/***
* $data
* <?php echo $data ?>
* {{ $name ?? '' }}
***/
所有这些测试,我得到同样的错误,我错过了一些东西,我无法弄清楚......或者我在使用 Laravel 时遇到了一些问题,可以肯定的是我被卡住了。
补充资料:
环境信息
Laravel 版本:7.16.1,Laravel 语言环境:en,Laravel 配置缓存:false,PHP 版本:7.4.6。
要求
网址 http://127.0.0.1:8000/ 方法 GET
标头
主机 127.0.0.1:8000 用户代理 Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0
我还尝试了 php artisan view:cache && php artisan view:clear
解决方案
你已经定义了一个调用index
你的函数,TestController
但你还没有使用它。在您的路线中,您没有使用控制器和该功能,因此您收到此错误。
你的方法是这样的:路由>视图
应该是:路由>控制器>视图
所以改变你的路线:
Route::get('/', function () {
return view('test');
});
到
Route::get('/', 'TestController@index');
干杯:)
推荐阅读
- java - 我们无法在 spring/html 项目中显示我们的“费用”
- python - TensorFlow-1 分布式底层代码和 Ray
- symfony - Symfony 5 邮件程序:无法在 SMTP 上进行身份验证
- python - 实感摄像头:在 start() 之前无法调用 stop()
- security - 向 GCP 服务帐号授予完整的 gcs 存储桶权限
- c# - 从依赖项目中提供静态文件
- powershell - 在 powershell 脱机时使用 wsusscn2.cab 扫描 windows 7 修补程序,occer HRESULT:0x800B0109,
- ios - BLE Broadcaster iOS 应用程序无需连接
- c# - 无法使用 Razor View 渲染图像
- javascript - 限制具有值范围的输入数字框