Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Что есть: форма, отправляющая данные в контроллер методом post.
Задача: сделать так, чтобы в зависимости от нажатой кнопки в запрос уходило определенное значение.
home.blade.php
<form action="{{ route('home.store') }}" method="post">
...
<div class="form-group col-xs-12">
<div class="col-md-12 text-center">
<button class="btn btn-primary" name="admin" type="submit">Вызвать системного администратора</button>
<button class="btn btn-primary" name="cleaner" type="submit">Вызвать уборщицу</button>
</div>
</div>
</form>
routes.php
Route::post('/home', [
'uses' => 'HomeController@store',
'as' => 'home.store'
]);
HomeController.php
public function store(Requests\TaskPublishRequest $taskPublishRequest, Task $task)
{
$task = $task->createTask($this->request);
}
Task.php
static public function createTask($request)
{
/* вот это не работает, и наверно вряд ли будет, так как неправильно передается параметр, что меня и интересует*/
$role = 0;
if($request->get('admin'))
$role = 2;
elseif($request->get('cleaner'))
$role = 3;
return parent::create([
'role_id' => $role,
'room_id' => $request->get('room_id'),
'task_status_id' => 1
]);
}
То есть при нажатии кнопки должно отправляться значение одного из полей task
p.s. Второй день как работаю/пытаюсь с Laravel.
Не в сети
Не в сети
Нпдо добавить в форму {{ csrf_field() }}
Это есть
public function store(Requests\TaskPublishRequest $taskPublishRequest, Task $task) { $task = Task::createTask($taskPublishRequest); }
так работает точно также, как и до этого, без явных ошибок, т.е. запись добавляется. но имя поля никак не передается, соответственно task не получает role_id
вот еще код из
TaskPublishRequest.php
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'room_id' => 'required',
/*'role_id' => 'required'//при добавлении этого поля, запись просто не добавляется*/
];
}
===============================
Проблема решена,
home.blade.php
<form action="{{ route('home.store') }}" method="post">
...
<div class="form-group col-xs-12">
<div class="col-md-12 text-center">
<button class="btn btn-primary" name="role_id" value="2" type="submit">Вызвать системного администратора</button>
<button class="btn btn-primary" name="role_id" value="3" type="submit">Вызвать уборщицу</button>
</div>
</div>
</form>
Task.php
static public function createTask($request)
{
return parent::create([
'role_id' => $request->get('role_id'),
'room_id' => $request->get('room_id')
]);
}
Изменено Zarin (05.09.2017 22:35:48)
Не в сети
Страницы 1