创建任务列表ID为外部的任务

时间:2014-11-30 15:36:01

标签: laravel-4 twitter-bootstrap-3

我创建了一个显示多个任务的任务列表。我可以在我的页面和任务本身中创建列表,但是,我在约束上收到错误,因为它必须带有正在创建的任务的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>
                    &nbsp;
                    {{ 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

时将任务正确添加到其列表中

1 个答案:

答案 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();