Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Can';t通过ajax Laravel访问具有新实例的扩展类的属性_Php_Laravel - Fatal编程技术网

Php Can';t通过ajax Laravel访问具有新实例的扩展类的属性

Php Can';t通过ajax Laravel访问具有新实例的扩展类的属性,php,laravel,Php,Laravel,为了更好地解释,我将给出以下代码示例: class BaseController extends Controller { public $globalCurrencies; public $currentCurrency; public $globalLanguages; public $currentLanguage; public function __construct() { $this->globalCurren

为了更好地解释,我将给出以下代码示例:

class BaseController extends Controller
{
    public $globalCurrencies;
    public $currentCurrency;
    public $globalLanguages;
    public $currentLanguage;

    public function __construct()
    {
        $this->globalCurrencies = $this->getCurrencies();
        $this->globalLanguages = $this->getLanguages();

        $this->middleware(function ($request, $next) {
            $this->currentCurrency = $this->getCurrentCurrency();
            $this->currentLanguage = $this->getCurrentLanguage();
            return $next($request);
        });
    }
手推车控制器

class CartController extends BaseController
    {
        public function __construct()
        {
            parent::__construct();
        }
BaseController为应用程序设置基本变量。购物车正在使用其中一些货币,如(当前货币)。一些变量是基于会话的,因此在基本构造中有中间件用于在构造函数中获取会话数据)。对于这一部分,一切正常,购物车可以访问baseController属性

问题出现在这里:

class OrderController extends BaseController
{
    public function loadPaymentsAndDelivery(Request $request)
    {
        $cart = new Cart;
        dd($cart->globalCurrencies) // WORKS
        dd($cart->currentCurrency)  // NULL
    }
}
基本上,在一个新的购物车实例上,我可以访问在没有中间件的情况下创建的每个属性。没有中间件,我无法访问会话来设置购物车。方法loadPaymentsAndDelivery是通过ajax加载的,但我尝试直接调用该方法,但属性仍然为空


有人能解释为什么会发生这种情况吗?

我想你可以使用隐式绑定,你试过了吗?你能给我一些隐式绑定的例子吗?我在docs的文章中看到了这一点,它看起来像是带有控制器/或路由的绑定模型,但我不确定。
currentCurrency
Cart
模型的属性吗?或者您是否打算执行
$this->currentCurrency
?currentCurrency是BaseController的属性。CartController(非模型)扩展了BaseController,因此他可以访问它。@MarekKaliszuk,但他正在创建
Cart
(非
CartController
)的实例,并试图从此实例访问
currentCurrency
。我想你可以使用隐式绑定,你尝试过吗?你能给我一些隐式绑定的例子吗?我在docs的文章中看到了这一点,它看起来像是带有控制器/或路由的绑定模型,但我不确定。
currentCurrency
Cart
模型的属性吗?或者您是否打算执行
$this->currentCurrency
?currentCurrency是BaseController的属性。CartController(非模型)扩展了BaseController,因此他有权访问它。@MarekKaliszuk,但他正在创建
Cart
(非
CartController
)的实例,并试图从此实例访问
currentCurrency