2015-12-30 20 views
11

私はGitHubのLinkからzizac /おまかせインストールのチュートリアルに続いてエラーに直面している:laravel 5.2での修正方法zizacoの委託:移行クラス名の検証?

Class name must be a valid object or a string in var/www/html/laravel_test/vendor/zizaco/entrust/src/commands/MigrationCommand.php on line 86

MigrationCommand.phpファイルURL:Link

Outut:

php artisan entrust:migration 

Tables: roles, role_user, permissions, permission_role 
A migration that creates 'roles', 'role_user', 'permissions', 'permission_role' tables will be created in database/migrations directory 

Proceed with the migration creation? [Yes|no] (yes/no) [yes]: yes 

Creating migration... 
PHP Fatal error: Class name must be a valid object or a string in /var/www/html/laravel_test/vendor/zizaco/entrust/src/commands/MigrationCommand.php on line 86 

コマンド:PHP職人のベンダー:公開が成功しました。

ファイル:config/entrust.phpが存在します。

config/auth.phpファイルのオプションを-auth.phpと同じように変更しませんでした。それを修正するには?

答えて

40

を削除するためにアップグレードされますまで待ち​​ますライン86上の/MigrationCommand.php

削除ライン:

$usersTable = Config::get('auth.table'); 
    $userModel = Config::get('auth.model'); 

追加ライン:

$usersTable = Config::get('auth.providers.users.table'); 
$userModel = Config::get('auth.providers.users.model'); 

と私などのconfig/auth.phpファイル書き込みプロバイダライン:

'providers' => [ 
    'users' => [ 
     'driver' => 'eloquent', 
     'model' => App\User::class, 
     'table' => 'users', 
    ], 

    // 'users' => [ 
    //  'driver' => 'database', 
    //  'table' => 'users', 
    // ], 
], 

、あなたの問題が解決します:幸せなベンダー/ zizaco /委託で

+1

これは私のために働いたものの、受け入れられた答えではありません! –

+0

これは問題を解決します。私はLaravel 5.2でマルチ認証を使用しています。これは魅力のように機能します!ありがとう – Nizam

+0

あなたの答えのために多くのありがとう。これは、laravel 5.2とうまく動作しています。これは正解とマークする必要があります。:-) –

2

てみランニング:

php artisan config:cache 

は、あなたのアプリケーションは、新鮮な設定ファイル

EDITを使用していることを確認するために

[OK]を、今私が見る、このライブラリは、使用したい:

$usersTable = Config::get('auth.table'); 
    $userModel = Config::get('auth.model'); 

でも何もありませんこれ以上authのように。

あなたはprobabyそうのようなauthファイルにtablemodelを追加する必要がありますように一時的な回避策:https://github.com/laravel/laravel/blob/5.1/config/auth.php

とエントラストは、ベンダー/ zizaco /委託/ SRC /コマンドでこの

+0

ありがとう、同じ問題。私は問題がconfig/auth.phpファイルであると思う。 – Noproblem

+0

'User.php'ファイルを表示できますか?それは 'App'ネームスペース –

+0

のリンクになければなりません:https://github.com/laravel/laravel/blob/master/app/User.php – Noproblem

5

コーディングLaravel 5.1 86

ライン上/src/commands/MigrationCommand.php。*追加ライン

$usersTable = Config::get('auth.table'); 
$userModel = Config::get('auth.model'); 

Laravel 5.2。*受け入れ答えは、問題を解決することがありライン

$usersTable = Config::get('auth.providers.users.table'); 
$userModel = Config::get('auth.providers.users.model'); 
+1

このコードは質問に答えるかもしれませんが、それがどのように動作し、いつ使用するかを説明するコンテキストを含める方が良いでしょう。コードのみの回答は長期的には有用ではありません。 – Bono

3

を追加しますが、直接ベンダーファイルを編集するための非常に悪い習慣です。Entrustをアップデートしてコードベースを修正しようとすると、以下のような問題が修正され、アプリをサポートすることができます。

のconfig/auth.phpに次の行を追加します

/* 
|-------------------------------------------------------------------------- 
| User Providers 
|-------------------------------------------------------------------------- 
| 
| All authentication drivers have a user provider. This defines how the 
| users are actually retrieved out of your database or other storage 
| mechanisms used by this application to persist your user's data. 
| 
| If you have multiple user tables or models you may configure multiple 
| sources which represent each model/table. These sources may then 
| be assigned to any extra authentication guards you have defined. 
| 
| Supported: "database", "eloquent" 
| 
*/ 

Laravel 5.1から5.4

'model' => \App\Models\User::class, 
'table' => 'users', 

をエントラストは、あなたがこれを削除するか、それを維持することができ、更新をロールアウトしたら。あなた次第。

+1

はlaravel 5.4で動作します – Cocuba

関連する問題