2016-08-20 3 views
1

Я, вероятно, не понимаю, как работают эти статические функции.Статические функции модели Laravel 5.2 используют

В проекте моей компании они просто создают публичную статическую функцию в любой модели, а затем используют ее таким образом modelname::functionName(). Я думаю, что их модели и контроллеры похожи на мои.

Теперь, я тренирую программирование дома, я создал модель символов в каталоге приложения. Затем я попытался использовать его аналогично в 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

Черт, следующая ошибка haha: 'Class 'App \ DB' not found'. Спасибо за ваш ответ :) – divHelper11

+2

Добавить 'use DB;' :) –

+0

Это не поможет. Возможно ли, что у меня нет этого файла DB в моем проекте или что-то еще? Это новый установленный laravel – divHelper11