Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Добрый день. Есть вот такой роутинг:
Route::get('create', array('uses' => 'UserController@create', 'as' => 'user.create'));
Route::post('upload', array('uses' => 'UserController@uploadAvatar'));
Route::post('store', array('uses' => 'UserController@store'));
При регистрации пользователя можно добавить аватар через ajax (будет показана превью перед сохранением). Все работает прекрасно, но стоит сделать так:
Route::post('upload', array('uses' => 'UserController@uploadAvatar'));
Route::resource('user', 'UserController');
то работа с изображением перестает работать (ни превью, ни сохранение). Что может быть не так?
Не в сети
Ты удаляешь маршруты create и store, т.к. ресурсный контроллер обрабатывает совсем другие URL и методы — см. документацию.
Не в сети
Вообщем, не совсем понимаю как добавить новый маршрут, если используем ресурсы
Не в сети
Не в сети
create/store автоматически создаются ресурсом, зачем их добавлять?
Не в сети
- create/store автоматически создаются ресурсом, зачем их добавлять?
Это имена методов в классе, а не в URL. См. документацию выше — POST /resource → ControllerClass@store. У тебя же получается, что оригинальный URL (без ресурсного контроллера) был POST /resource/store, а с контроллером — POST /resource. В итоге если ты не поменял пути в коде JavaScript, то получишь 404.
Посмотри, что получается при AJAX через Firebug или другую консоль.
Не в сети
Проблему решил вот как: переименовал scripts.js в scripts.blade.php, в представлении регистрации вставил
@section('scripts')
@include('users.scripts')
@stop
В коде скрипта сделал так:
url: "{{ URL::to('upload') }}",
И собственно оставил ресурсный роутинг. Все работает
Не в сети
Страницы 1