2016-08-20 61 views
1

我可能不明白這些靜態函數是如何工作的。Laravel 5.2模型靜態函數使用

在我公司的項目中,他們只是在任何模型中創建一個公共靜態函數,然後他們以這種方式使用它modelname::functionName()。我認爲他們的模型和控制器看起來與我的相似。

現在,我在家裏培訓編程,我在App目錄中創建了一個Character模型。然後我試圖在CharacterController中使用它,但它說:

FatalErrorException in CharacterController.php line 18: Class 'App\Http\Controllers\Character' not found

對我來說,看起來Laravel正在尋找控制器中的靜態函數而不是我的模型。

我的模型:

<?php 

namespace App; 

use app; 
use Illuminate\Database\Eloquent\Model; 

class Character extends Model 
{ 
    protected $table = 'character'; 

    public static function insertCharacterRace($race){ 
     DB::insert('INSERT INTO `character` VALUES `race` = ?', array($race)); 
    } 

} 

我的控制器:

<?php 

namespace App\Http\Controllers; 

use App\Http\Requests; 
use Illuminate\Http\Request; 
use App; 

class CharacterController extends Controller 
{ 


    public function raceSelected($race){ 
     Character::insertCharacterRace($race); 
    } 

    } 

回答

3

在你的控制人變更情況如下:

use App; 

要這樣:

use App\Character; 
+0

該死的,下一個錯誤哈哈:'''App'DB'找不到'。謝謝你的回答:) – divHelper11

+2

加'use DB;':) –

+0

它沒有幫助。有沒有可能我沒有這個數據庫文件在我的項目或什麼?這是新安裝的laravel – divHelper11