Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 23.12.2015 15:11:22

Arat
Откуда: Киев
Сообщений: 116

Ruote и POST отправка данных

Всем привет! Что-то странное происходит. Схема работала в 4.2, в 5.1 не хочет.
Итак
Есть роут:

PHP
//Routes
$router->group(['prefix' => 'pages'], function($router) {

            
$router->get('/', function() {
                
$pages Page::all();

                return 
view('admin.pages.index', ['pages' => $pages]);
            });
            
$router->get('edit/{id}''PageController@edit');
            
$router->post('edit/{id}''PageController@update');
            
$router->get('new', function() {
                return 
view('admin.pages.new');
            });
            
$router->post('new''PageController@create');
            
$router->get('drop/{id}''PageController@destroy');
        });

Есть форма:

PHP
//Вьюха
{!! Form::open(['action' => 'PageController@update''method' => 'POST''role' => 'form''enctype' => 'multipart/form-data']) !!}

Есть контроллер:

PHP
public function update($id) {

        
$v Validator::make($request->all(), Page::rules());

        if (
$v->fails()) {
            return 
redirect()->back()->withErrors($v->errors())->withInput();
        } else {
            
$page Page::edit($request);

            return 
redirect('/dashboard/pages');
        }


        if (isset(
$page->id)) {
           return 
redirect('/dashboard/pages');
        } else {
            return 
redirect()->back();
        }

    }

Не срабатывает $router->post('edit/{id}', 'PageController@update');
Перебрасывает именно на http://mydomain/dashboard/edit/{id}, хотя обработка идет именно на странице с нормальным айдишником.
Что не так идет не могу разобраться :(

Не в сети

#2 23.12.2015 15:15:41

Arat
Откуда: Киев
Сообщений: 116

Re: Ruote и POST отправка данных

Код формы генерирует вот такой:

<form method="POST" action="http://mydomain/dashboard/pages/edit/%7Bid%7D" accept-charset="UTF-8" role="form" enctype="multipart/form-data">

Не в сети

#3 23.12.2015 17:32:12

Re: Ruote и POST отправка данных

расставь везде маркеры по типу dd(num)
и смотри куда выпало. замутил так замутил.
в 5.1 префикс на миддлварю снеси. писать меньше придётся.
да и в идеале crud надо б юзать полноценно, а не частями частей of частей.

Не в сети

#4 23.12.2015 17:33:18

Re: Ruote и POST отправка данных

и по контроллер-апдейт.
он возвращает редирект а не ссылку wink

Не в сети

#5 23.12.2015 17:33:46

Arat
Откуда: Киев
Сообщений: 116

Re: Ruote и POST отправка данных

Уф, а подробнее можно? В ларе еще не гуру ))))))

Не в сети

#6 23.12.2015 17:34:17

Arat
Откуда: Киев
Сообщений: 116

Re: Ruote и POST отправка данных

hzone пишет:

и по контроллер-апдейт.
он возвращает редирект а не ссылку wink

Но редиректит на адрес из роута же

Не в сети

#7 23.12.2015 17:34:54

Re: Ruote и POST отправка данных

ну если не гуру, но занимался 4.2 и используешь сложные алгоритмы в роутинге, так нафига? smile
начни с простого, по мере изучения усложнишь.

Не в сети

#8 23.12.2015 17:36:07

Re: Ruote и POST отправка данных

Arat пишет:
hzone пишет:

и по контроллер-апдейт.
он возвращает редирект а не ссылку wink

Но редиректит на адрес из роута же

ты не прав тут

{!! Form::open(['action' => 'PageController@update',

контроллер редиректнуть по всей логике обязан, что и делает

Не в сети

#9 23.12.2015 17:38:49

Re: Ruote и POST отправка данных

return redirect()
шлёт хедер, затем куда.
он не возвращает как таковую ссылку.

попробуй использовать фасад URL для генерации ссылок

Изменено hzone (23.12.2015 17:42:24)

Не в сети

#10 23.12.2015 17:39:43

Arat
Откуда: Киев
Сообщений: 116

Re: Ruote и POST отправка данных

hzone пишет:

ты не прав тут

{!! Form::open(['action' => 'PageController@update',

контроллер редиректнуть по всей логике обязан, что и делает

Вот контроллер редиректит на /dashborad/pages. Он выплевывает меня на URL из роута, почему не понимаю.

Не в сети

#11 23.12.2015 17:43:09

Re: Ruote и POST отправка данных

попробуй использовать фасад URL для генерации ссылок

Не в сети

#12 23.12.2015 17:44:05

Re: Ruote и POST отправка данных

Arat пишет:
hzone пишет:

ты не прав тут

{!! Form::open(['action' => 'PageController@update',

контроллер редиректнуть по всей логике обязан, что и делает

Вот контроллер редиректит на /dashborad/pages. Он выплевывает меня на URL из роута, почему не понимаю.

я тебе сказал, что redirect = редиректит, а не отдаёт ссылку.
что не понятно в словах "редиректит а не отдаёт ссылку" ??

Не в сети

#13 23.12.2015 17:45:10

Re: Ruote и POST отправка данных

да и нафига генеришь огород для простого решения.
все параметры отдай во вью, и там на базе простого if-else прими решение какую ссылку сгенерить.

Не в сети

#14 23.12.2015 17:47:24

Arat
Откуда: Киев
Сообщений: 116

Re: Ruote и POST отправка данных

hzone пишет:

я тебе сказал, что redirect = редиректит, а не отдаёт ссылку.
что не понятно в словах "редиректит а не отдаёт ссылку" ??

ептить! У меня в двух случаях контроллер редиректит на /dashboard/pages, меня же в итоге редиректит на ту же страницу, где отдается на обработку инфа в контроллер, только айдишник подменяется на {id}.

Не в сети

#15 23.12.2015 18:13:10

Arat
Откуда: Киев
Сообщений: 116

Re: Ruote и POST отправка данных

Нашел временный костыль.
Пишем во вьюхе форму вручную.

PHP
<form action="/dashboard/pages/edit/{{$item->id}}" role="form" method="POST" enctype="multipart/form-data">
<
input name="_token" type="hidden" value="{{ csrf_token() }}">

Изменено Arat (23.12.2015 18:14:22)

Не в сети

#16 24.12.2015 00:09:50

Re: Ruote и POST отправка данных

на граблях как на батуте...

попробуй использовать фасад URL для генерации ссылок

и в шаблонах тоже

Не в сети

#17 26.12.2015 12:07:04

Arat
Откуда: Киев
Сообщений: 116

Re: Ruote и POST отправка данных

hzone пишет:

на граблях как на батуте...

попробуй использовать фасад URL для генерации ссылок

и в шаблонах тоже

пробовал. Не работает.

Не в сети

#18 26.12.2015 12:21:13

Re: Ruote и POST отправка данных

1) разбей группу - создай всё по отдельности.
2) префикс в 5.1 реализуй на middleware
3) контроллер НЕ ПРЕДНАЗНАЧЕН для генерации ссылок и форм
4) гугли понятия "нормализация" и "оптимизация"
5) гугли чем отличается и в чём сходятся данные и информация
потом задавай вопросы.

Не в сети

Подвал раздела