php - 用于不同控制器的 laravel 公共变量
问题描述
我想设置一个公共变量,以便可以在不同的控制器中使用它。我试过这个,但没有成功。
class HomeController extends Controller
{
public $TravelId;
public function __construct()
{
$this->TravelId=0;
}
}
然后我在另一个控制器中使用了相同的变量
class HomeController extends Controller
{
public function index($cus_id)
{
//unique key for each user
$this->TravelId = $cus_id;
}
}
解决方案
默认情况下,您的所有控制器都扩展App\Http\Controllers\Controller
类,因此您可以在此类上添加一个属性并在所有控制器上访问它:
<?php
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
/**
* Your static property
*/
public static $travelId;
}
然后你可以在另一个控制器上访问它:
self::$travelId = $cus_id;