Я пытаюсь включить пользовательский определенный файл проверки, который является локальным для моей системы, и хотел бы использовать его с «пакетными» файлами из приложения, загруженного через Интернет , Целью является то, что у меня могут быть собственные пользовательские валидаторы, так как я вносил изменения в это приложение.Laravel 4 PHP: инструкция «Использовать» как с локальными файлами, так и с файлами пакетов
я получаю ошибку - Модели> 'класс '\ валидаторов \ Фото' не найден'
Контроллер:
use JeroenG\LaravelPhotoGallery\Controllers\AlbumsController; /* From Package */
use JeroenG\LaravelPhotoGallery\Controllers\PhotosController; /* From Package */
use JeroenG\LaravelPhotoGallery\Models\Album; /* From Package */
use JeroenG\LaravelPhotoGallery\Models\Photo; /* From Package */
use Models\Validators as Validators; /* Custom local file */
class EditPhotosController extends PhotosController {
public function __construct()
{
parent::__construct();
}
public function update($albumId, $photoId)
{
$input = \Input::except('_method');
$validation = new Validators\Photo($input); // Here's where error occurs
/* Validation check and update code etc. */
}
}
}
Photo.php -> Путь к файлу: Модели \ Validators \ Photo.php
namespace Models\Validators;
class Photo extends Validator {
public static $rules = array(
'album_id' => 'required',
'photo_name' => 'required',
'photo_description' => 'max:255',
);
}
Является ли это просто вопрос Пространства имен?
В моем файле composer.json, на самом деле я определил в своем индексе «автопортрет/модель» автозагрузки, в котором живет «Модели/Валидаторы/Фото.php». Раньше я пытался использовать «php artisan dump-autoload», но ничего не сделал. Я немного неохотно использую «компоновщик-автозагрузка», потому что я не хочу, чтобы он «отменил» любые изменения, которые я сделал. –
По вашему предложению я создал новый локальный каталог под названием «приложение/валидаторы» и разместил там файлы пользовательской проверки. В моих пользовательских файлах проверки мне пришлось добавить вверху каждого файла «приложение для пространства имен \ валидаторы». После написания этой команды я вошел в Putty и набрал «php artisan dump-autoload», и моя проверка теперь работает. Спасибо за ваше предложение! –
На самом деле, почему это не работает в 'app/models', потому что композитор не ищет совпадений PSR-0' в каталоге. Он ищет только прямые файлы (что означает не рекурсивно), который содержит класс с тем же именем, что и файл. Если вы добавите объект 'PSR-0' или' PSR-4' в массив автозагрузки композиторов и переместите 'app/models' в него, вероятно, будут работать предыдущие местоположения. Но папка 'app/validator' имеет смысл. – Hkan