Я работаю с репозиториями Eloquent для проекта Laravel PHP. Я внес изменения в одно из объявлений внутри файла интерфейса для репозитория. Проблема в том, что когда я пытаюсь запустить свою программу, я продолжаю получать "Декларация Acme\repositories\Eloquent\EloquentPictureRepository :: create() должна быть совместима с ошибкой Acme\repositories\PictureRepository :: create ($ input)".
Сейчас моя программа все еще читает оригинальное объявление 'PictureRepository.php' вместо обновленной версии, которую я ему сделал.
PictureRepository.php (файл интерфейса):
интерфейс PictureRepository {
public function all();
public function find($id);
public function findOrFail($id);
/* I added the '$filename' parameter to the function 'create()' */
public function create($input, $filename);
public function update($id, $input);
public function delete($id);
public function forceDelete($id);
public function restore($id);
}
EloquentPictureRepository:
<?php namespace Acme\repositories\Eloquent;
use acme\repositories\PictureRepository;
use app\models\Picture;
class EloquentPictureRepository implements PictureRepository {
/* Added the new parameter to the 'create()' function */
public function create($input, $filename)
{
/* Need this structure in order for photos to actually be displayed. */
$newPicture = new Picture;
$newPicture->picture_name = $input['picture_name'];
$newPicture->picture_path = $filename;
$newPicture->picture_description = $input['picture_description'];
$newPicture->picture_edges = $input['picture_edges'];
$newPicture->picture_stones = $input['picture_stones'];
$newPicture->picture_order = $input['picture_order'];
$newPicture->picture_link = $input['picture_link'];
$newPicture->picture_height = $input['picture_height'];
$newPicture->picture_width = $input['picture_width'];
$newPicture->category = $input['category'];
$newPicture->picture_project = $input['picture_project'];
return $newPicture->save();
}
}
Я попытался запустить оба "php artisan dump-autoload" и "обновление композитора", но мой новый файл "PictureRepository.php" все еще не распознается.
Я на самом деле просто запускал "компоновщик dump-autoload", и теперь мой обновленный файл репозитория распознается.
EDIT: запуск "компоновщика-автозагрузки" фактически повлияет на ваши контроллеры и не позволит им обновляться. Старайтесь не запускать эту команду, если это абсолютно необходимо.