#laravel #eloquent
#laravel #красноречивый
Вопрос:
Итак, я использую эту строку для создания сообщений и привязки их к пользователю
// PostController
Auth::user()->posts()->create($inputs);
Проблема в том, что intelephense продолжает говорить мне, что posts()
метод не существует в пользовательской модели, но я его определил
// User model
public function posts()
{
return $this->hasMany(Post::class);
}
Команда работает нормально, но это может вызвать у меня некоторые проблемы в будущем, поэтому я хотел бы знать, что я что-то делаю неправильно или это интеллектуальная защита?
Ответ №1:
Intellephense — это не функция или пакет Laravel, это языковой сервер для PHP, который автоматически устанавливается вместе с его расширением в вашем редакторе или IDE
Анализатор не имеет возможности узнать о фасадах Laravel, fluent и magic методах
Итак, что вы можете сделать, это сгенерировать для него эти ссылки, используя barryvdh / laravel-ide-helper
- Установите пакет в качестве требования к разработке
composer require --dev barryvdh/laravel-ide-helper
- Автоматическая генерация PHPDoc для фасадов Laravel
php artisan ide-helper:generate
- Автоматические PHPDocs для моделей
php artisan ide-helper:models "AppModelsUser"