1

Laravel 4 アプリケーションのモデルで名前空間を使用しようとしています。

モデル/Fix.php

<?php 
namespace Models; // Namespace Declaration
class Fix extends Eloquent {        
    public static function getFixes() {
        return DB::table('fixes')->get();
    }
}
?>

FixController.php

<?php
class FixController extends BaseController {
    public function showFix() {
        $fixes = Models\Fix::getFixes();  // Referring to Fix Class in Models namespace  
        return View::make('partials.fix', array(
            'fixes' => $fixes,
        ));
    }
}
?>

これを行うと、次のエラーが表示されます。

Symfony \ Component \ Debug \ Exception \ FatalErrorException
Class 'Models\Fix' not found

$fixes = Models\Fix::getFixes();

https://coderwall.com/p/nhwq8wに従って、ターミナル ウィンドウから使用composer dump-autoし、再実行を試みました...次のエラーを見つけるには。

Symfony \ Component \ Debug \ Exception \ FatalErrorException
Class 'Models\Eloquent' not found

class Fix extends Eloquent {
4

1 に答える 1

4

解決策 - 各モデルに use ステートメントを追加する必要があります...

<?php 
namespace Models;
use Eloquent; // ******** This Line *********
use DB;       // ******** This Line *********
class Fix extends Eloquent {
    public static function getFixes() {
        return DB::table('fixes')->get();
    }
}

?>
于 2013-08-31T23:49:44.333 に答える