2015-12-11 2 views
2

Я изучаю Laravel 5 из курса Laracast: Laravel 5 Fundamentals, используя PhpStorm IDE.Laravel 5, Method 'findOrFail' не найден в классе

У меня есть статические методы модели, такие как where(), find() и findOrFail().

Когда я использую эти методы PhpStorm показывает:

Метод 'findOrFail' не найден в классе App \ Статьи.

Моя модель - статья, а метод all() работает.

Как я могу это решить?

+0

Пожалуйста, разместите код для своей модели товара, а также место, где вы пытаетесь использовать эту модель. – djt

+0

как вы называете этот метод? –

+0

Попробуйте использовать [Laravel IDE Helper] (https://github.com/barryvdh/laravel-ide-helper). – Bogdan

ответ

2

Это потому, что эти методы поражают магический метод __call, который phpStorm не знает, как следовать. Это действительно просто сокращение для следующих ...

$article = new \App\Article; 
$query = $article->newQuery(); 

$query->where('column', 'value')->get(); 
+0

Я очень ценю ваш ответ! Это полезно для меня. Спасибо) –

2

Благодарим за интерес. Но я решил, я использую метод запроса():

public function show($id) 
    { 

     $article = Article::query()->findOrFail($id); 

     return view('articles.show', compact('article')); 

    } 
-1

У меня была такая же проблема, как оказалось в конце, что я забыл одинарную кавычку в show.balde.php, когда я расширил главную страницу: @extends ('app) , когда я, наконец, понял это и исправил его, все сработало отлично: это сработало: $ article = Article :: findOrFail ($ id); , и это также сработало: $ article = Article :: query() -> findOrFail ($ id); Надеюсь, это поможет (я пробовал это в Laravel 5.3).

+0

Эта ошибка, вероятно, случится для всех, потому что, когда вы пытаетесь расширить открытые скобки, тогда нажмите клавишу одиночной кавычки, и вы предположите, что она добавит 2 одиночных qoutes: '', но это не так, как я пытался в phpStorm IDE. Вот почему я подумал, что это может быть полезно! –

Смежные вопросы