Laravel по-русски

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

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

#1 Re: Laravel 5.x » Проблема с обновлением записи » 23.04.2015 11:16:39

Документацию читал, но она, имхо, очень скудная.

<?php
Route::get('/', 'PageController@index');
Route::get('index', 'PageController@index');
Route::get('post{id}','PostController@getPost');
Route::get('about', 'PageController@about');
Route::get('calculator', 'PageController@calculator');
Route::get('china', 'PageController@china');
Route::get('contacts', 'PageController@contacts');
Route::get('services', 'PageController@services');
Route::get('turkey', 'PageController@turkey');
Route::get('admin', 'PageController@admin');
Route::get('registration', 'UserController@registration');
Route::get('logout', function() { Auth::logout(); return Redirect::to('admin'); });
Route::get('request', function() { return View('request'); });
Route::get('req_{id}', 'RequestController@getRequest');
Route::get('archive', 'PostController@archive');
Route::get('user_{login}','UserController@getUser');
Route::get('deluser_{login}', 'UserController@delUser');
Route::get('newpost', function() { return View('newpost'); });
Route::get('newrequests', 'RequestController@getAllNew');
Route::get('allrequests', 'RequestController@getAll');
Route::get('delpost_{id}', 'PostController@delPost');
Route::get('newreq_{id}', 'RequestController@getNew');

Route::post('post', 'PostController@addPost');
Route::post('login', 'UserController@login');
Route::post('registration', 'UserController@register');
Route::post('request', 'RequestController@addRequest');
Route::post('changePassword_{login}', 'UserController@changePassword');
Route::post('processRequest', 'RequestController@processRequest');

Route::controllers([
	'auth' => 'Auth\AuthController',
	'password' => 'Auth\PasswordController',
]);

#2 Re: Laravel 5.x » Проблема с обновлением записи » 23.04.2015 09:06:39

Никак не прописан. Как я сказал, я новичок в этом. Надо было что-то прописывать? Чего же тогда удаление и добавление работают нормально?

#3 Re: Laravel 5.x » Проблема с обновлением записи » 23.04.2015 06:48:30

Дмитрий, спасибо, буду знать.
А насчет middleware. Я их не трогал. Как я понимаю, они фильтруют заданные запросы. Я в начале грешил на стандартные, но их удаление не повлияло на проблему.

#5 Re: Laravel 5.x » Проблема с обновлением записи » 22.04.2015 19:46:54

В контроллере:

public function processRequest($id) {
        $id = (int) $id;
        $data = Input::all();
        $rules = [
            'shipping_costs' => 'required',
            'comments' => 'required'
        ];
        $val = Validator::make($data, $rules);
        if($val -> fails()) {
            $errors = $val -> messages() -> toArray();
            return redirect()->back()->withInput()->with('errors', $errors);
        }
        Request::process($id, $data);
        return Redirect::to('newrequests');
    }

и в моделе:

public static function process($id, $data) {
        try {
            $request = Request::where('id', '=', $id)
                ->update([
                    'shipping_costs' => $data['shipping_costs'],
                    'comments' => $data['comments'],
                    'processed' => true
                ]);
        } catch (Exception $ex) {
            return $ex;
        }
        return $request;        
    }

#6 Re: Laravel 5.x » Проблема с обновлением записи » 22.04.2015 19:20:30

Добавление, вывод и удаление записей прекрасно работают, а вот изменение записи приводит к ошибке.

#7 Laravel 5.x » Проблема с обновлением записи » 22.04.2015 18:47:10

ktulchonok
Ответов: 15

Недавно начал работать с laravel и  c php в целом. Понимаю что здесь нет экстрасенсов, но можете выложить хотя бы свои догадки.

Проблема заключается в том, что при попытке внести изменения в существующую запись в БД, получаю 403 ошибку Access forbidden!
Понимаю, что ошибка заключена в ограничение доступа к данным. Но ни имею понятия, где эти ограничения прописаны.

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