Collection.php第11行中的Laravel + FatalErrorException:未找到接口'Illuminate \ Contracts \ Queue \ QueueableCollection'

时间:2016-06-08 07:21:27

标签: php laravel laravel-5.2

我有这段代码

use App\User;

use Auth;

use App\Http\Controllers\Controller;

use App\Libraries\CustomLib;

class UsersController extends Controller
{

   public function postLogin(){
        // var_dump($_POST);
        $email = \Input::get('username');
        $password = \Input::get('password');

        $user = User::where("email",$email)->first();
        var_dump($user_info);
  }
}

我收到此错误:

FatalErrorException in Collection.php line 11: Interface 'Illuminate\Contracts\Queue\QueueableCollection' not found

不确定这意味着什么。

任何想法请如何解决这个问题。

谢谢!

3 个答案:

答案 0 :(得分:2)

我通过在此链接中下载QueueableCollection.php解决了这个问题: https://github.com/illuminate/contracts/tree/master/Queue

在进行作曲家更新时,看起来没有提取该文件。但不确定。

非常感谢! :)

答案 1 :(得分:0)

我更新了我的作曲家以使用旧版本的照明/数据库,它现在正在运行。我想问题是新版的雄辩。 Your email was sent! One of our team members would contact you shortly!"illuminate/database": "5.2.*"

答案 2 :(得分:-1)

特定错误意味着从数据库中检索为Laravel Collection的记录集合未实现QueueableCollection接口中概述的特定方法。这通常是由于缺少依赖性。通常,Laravels模型允许序列化。在这种情况下,它是因为用户模型可用于发送密码提醒等电子邮件...当缺少此接口时,Laravel会抛出一个异常,指出无法实例化所需的组件。这种方法也称为"编码到接口"。

进一步信息:

您似乎正在尝试手动身份验证。请确保您的App \ User模型实现Authenticatable:

use Illuminate\Database\Eloquent\Model;
use Illuminate\Contracts\Auth\Authenticable;
use Illuminate\Auth\Authenticable as AuthenticableTrait;

class User extends Model implements Authenticable {
    use AuthenticableTrait;
}

文档

中对此进行了介绍

https://laravel.com/docs/5.2/authentication#authenticating-users

为了节省您访问网站的速度,以下是使用您的示例对其示例的解释:

use App\User;

use Auth;

use Illuminate\Support\Facades\Auth;

use App\Http\Controllers\Controller;

use App\Libraries\CustomLib;

class UsersController extends Controller
{

    public function postLogin()
    {
        $email = \Input::get('username');
        $password = \Input::get('password');

        if (Auth::attempt(['email' => $email, 'password' => $password])) {
            // Authentication passed. Redirect to "dashboard"
            return redirect()->route('dashboard');
        }
    }

}

现在可以通过Auth Facade访问用户的详细信息:

Auth::user()->name;
Auth::user()->email;
Auth::user()->id;

Auth::user()与会话相关联。如果启用,则记忆令牌也会设置为cookie,允许登录持续超过会话到期时间限制(我相信默认值为2小时)。

更多信息:

https://laracasts.com/discuss/channels/general-discussion/laravel-5-authattemp-method?page=1

**Edit:**模型的命名空间引入,更正了继承