我创建了一个显示多个任务的任务列表。我可以在我的页面和任务本身中创建列表,但是,我在约束上收到错误,因为它必须带有正在创建的任务的ID。
目前,该任务是在laravel 4(tasks / index.blade.php)视图中的循环下创建的。
@foreach ($tasks_lists as $task_list)
<div class="col-lg-3 col-md-4 container_tasks">
<h4>{{ $task_list->title }} <small><a href="#" data-toggle="modal" data-target=".create-task-modal{{ $task_list->id }}">(Nueva tarea)</a></small><button class="close" type="button" data-toggle="modal" data-target=".delete-task-list-modal{{ $task_list->id }}">×</button></h4>
<ul>
@foreach ($task_list->tasks as $task)
<li>
{{ Form::open(array('url' => 'tareas.marcar', 'class' => 'createTaskList')) }}
<input
type="checkbox"
onclick="this.form.submit()"`
{{ $task->done ? 'checked' : '' }}
/>
<input type="hidden" name="id" value="{{ $task->id }}" />
{{ $task->name }}
{{ Form::close() }}
</li>
@endforeach
</ul>
</div>
<div class="modal fade create-task-modal{{ $task_list->id }}" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true" >
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">Crear lista de tareas</h4>
</div>
<div class="modal-body">
{{ Form::open(array('url' => 'tareas', 'class' => 'createTask')) }}
<div class="form-group">
{{ Form::label('name', 'Nombre') }}
{{ Form::text('name', Input::old('name'), array('class' => 'form-control')) }}
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
{{ Form::submit('Crear tarea', array('class' => 'btn btn-primary')) }}
{{ Form::close() }}
</div>
</div>
</div>
</div>
这是我的控制器(TaskController.php):
public function store()
{
$task_list =
// Reglas de validación
$rules = array(
'name' => 'required|min:3|max:30'
);
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails()) {
return Redirect::to('tareas')
->withErrors($validator)
->with('notice_type', 'danger')
->with('notice', 'Los siguientes errores ocurrieron:')
->withInput();
} else {
// store
$task = new Task;
$task->name = Input::get('name');
$task->save();
return Redirect::to('tareas')
->with('notice_type', 'success')
->with('notice', 'La tarea ha sido agregado satisfactoriamente.');
}
}
如何在创建任务时添加当前任务列表的ID,以便在单击.create-task-modal
时将任务正确添加到其列表中答案 0 :(得分:0)
Lucus
最简单的方法是在之后添加隐藏字段
{{ Form::open(array('url' => 'tareas', 'class' => 'createTask')) }}
所以它就像
{{ Form::open(array('url' => 'tareas', 'class' => 'createTask')) }}
{{ Form::hidden('task_list_id', $task_list->id) }}
然后,在你的控制器中
$rules = array(
'task_list_id' => 'required|exists:task_lists,id', //check the docs for exists
'name' => 'required|min:3|max:30'
);
...
// option 1
$task = new Task;
$task->task_list_id = Input::get('task_list_id');
$task->name = Input::get('name');
$task->save();
// option 2 (depending on your fillable
$task = new Task(Input::only('task_list_id', 'name');
$task->save();