我正在尝试将参数传递给我的UserController,但似乎无法找到执行此操作的方法。所有其他主题都提供了示例,其中已在url中定义了参数,但这不是我想要的。
$my_var = "some data";
Route::get('/login', 'Auth\UserController@login');
我的UserController中需要$ my_var
class UserController extends Controller
{
public function login()
{
// Retreive $my_var somehow
return view("login");
}
}
对不起,我的英语不好,这不是我的母语
答案 0 :(得分:1)
您做错了。那不是您使用MVC框架的方式,最好不要在web.php
中定义仅用于您的路由和中间件的变量或常量。顺便说一句,如果您需要这样做,则有两种方法:
1)使用特征:
web.php :
trait TestTrait {
public static $my_var = 'some data';
}
Route::get(/login', 'Auth\UserController@login');
UserConroller.php :
use TestTrait;
class UserController extends Controller
{
use TestTrait;
public function login()
{
// You can retrieve it as a variable: $my_var
echo TestTrait::$my_var;
}
}
2)使用常量而不是变量:
web.php :
define('MY_VAR', 'some data');
Route::get('/login', 'Auth\UserController@login');
UserConroller.php :
public function login()
{
// You can retrieve it as a constant: MY_VAR
echo MY_VAR;
}
答案 1 :(得分:0)
如果变量是硬编码的,为什么不将其声明为常量呢? 如果不需要其他逻辑,则可以通过路由文件传递该变量。
$my_var = "some data";
Route::get('/login', function(){
Return view('login', compact('my_var')):
});