4

私はLaravelの初心者です。この質問が子供っぽく聞こえる場合は、ご容赦ください。

私はモデルを持っています

class Config extends Eloquent {

    public static $table = 'configs';

}

コントローラーは次のようになります

class UserController extends BaseController {

    Public function getIndex ()
    {
        $config_items = Config::all ();
        var_dump ( $config_items );
        return View::make ( 'user.userindex' )
                        -> with ( 'title', 'User Page' );
    }

}

しかし、Config モデルにアクセスしようとすると、エラーが発生します。

symfony\Component\Debug\Exception\FatalErrorException 未定義メソッド呼び出し Illuminate\Config\Repository::all()

エラーメッセージ

助けてください!

この質問は、私や同僚のような多くの Laravel 4 初心者の助けになると思います。助けてください!

4

2 に答える 2

8

コメンターが指摘したように、Config実際にはすでに定義/使用されているクラスです。

次の 2 つのオプションがあります。

オプション1:

Configモデルの名前空間:

<?php namespace My\Models;

use Illuminate\Database\Eloquent\Model;

class Config extends Model { ... }

次に、コントローラーで:

$config_items = My\Models\Config::all();

注:オプション 1 を使用する場合 (そうすることをお勧めします)、名前空間付きライブラリの自動読み込みを設定する必要があります。autoloading を使用して独自の Laravel ライブラリをセットアップする方法については、このブログ記事を参照してください。

オプション 2:

Configモデル名として使用しないでください:

<?php

class Configuration extends Eloquent { ... }

次に、コントローラーで:

$config_items = Configuration::all();

それが役立つことを願っています!

于 2013-07-07T18:46:14.700 に答える
5

Config は laravel が config ファイルを管理するために使用する予約済みのキーワードだと思うので、モデル名を別の名前に変更してみてください

于 2013-07-07T18:45:31.313 に答える