Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.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 应用绑定仍然导致找不到类_Php_Laravel_Laravel 4 - Fatal编程技术网

Php 应用绑定仍然导致找不到类

Php 应用绑定仍然导致找不到类,php,laravel,laravel-4,Php,Laravel,Laravel 4,所以我在routes.php中绑定了这个应用程序: App::bind('HybridAuth', function() { return new Hybrid_Auth(Config::get('hybridauth')); }); 我的控制器上的构造函数: public function __construct(UserRepository $user, HybridAuth $oauth) { $this->user = $user; $this->o

所以我在
routes.php中绑定了这个应用程序:

App::bind('HybridAuth', function()
{
    return new Hybrid_Auth(Config::get('hybridauth'));
});
我的控制器上的构造函数:

public function __construct(UserRepository $user, HybridAuth $oauth)
{
    $this->user = $user;
    $this->oauth = $oauth;
}

为什么在控制器中仍然出现
类HybridAuth not found
错误?它不应该使用我刚才做的应用程序绑定吗。

在不知道oAuth类是如何加载(或不是自动加载)的情况下,我猜您可能需要告诉Laravel您的
混合身份验证类在哪里。请注意,像这样的绑定(在控制器中加入了Laravel的魔法)并不能代替设置自动加载-PHP仍然需要知道如何找到您的类

App::bind('HybridAuth', function()
{
    return new Hybrid_Auth(Config::get('hybridauth'));
});
可能需要变得更像这样:

App::bind('HybridAuth', function()
{
    return new \Some\Namespace\Hybrid_Auth(Config::get('hybridauth'));
});

在不知道oAuth类是如何加载(或不是自动加载)的情况下,我猜您可能需要告诉Laravel您的
混合身份验证
类在哪里。请注意,像这样的绑定(在控制器中加入了Laravel的魔法)并不能代替设置自动加载-PHP仍然需要知道如何找到您的类

App::bind('HybridAuth', function()
{
    return new Hybrid_Auth(Config::get('hybridauth'));
});
可能需要变得更像这样:

App::bind('HybridAuth', function()
{
    return new \Some\Namespace\Hybrid_Auth(Config::get('hybridauth'));
});

这主要是因为,当您进行绑定时,实际上并不是为类创建别名,而是为该类的实例创建别名,该类的实例稍后可以通过
App::make('HybridAuth')
访问

如果您想要为类本身创建一个别名,就像它看起来是这样,那么继续
app/config/app.php
并将其添加到
alias
键下。大概是这样的:

App::bind('HybridAuth', function()
{
    return new \Some\Namespace\Hybrid_Auth(Config::get('hybridauth'));
});
app/config/app.php

'aliases' => array(
    'HybridAuth'      => 'Hybrid_Auth',
    // ...
),

这主要是因为,当您进行绑定时,实际上并不是为类创建别名,而是为该类的实例创建别名,该类的实例稍后可以通过
App::make('HybridAuth')
访问

如果您想要为类本身创建一个别名,就像它看起来是这样,那么继续
app/config/app.php
并将其添加到
alias
键下。大概是这样的:

App::bind('HybridAuth', function()
{
    return new \Some\Namespace\Hybrid_Auth(Config::get('hybridauth'));
});
app/config/app.php

'aliases' => array(
    'HybridAuth'      => 'Hybrid_Auth',
    // ...
),

这是因为绑定不会创建类的别名,而是创建类的实例。如果你想要一个别名,请访问app/config/app.php并将其添加到alias下。我接受这个答案,谢谢!这是因为绑定不会创建类的别名,而是创建类的实例。如果你想要一个别名,请访问app/config/app.php并将其添加到alias下。我接受这个答案,谢谢!