0

我是 Laravel 4 的新手,我收到此错误:缺少一些强制参数(“id”)来为路由“cat_edit”生成 URL。

这是我的路线:

Route::get('/category/{id}/edit', array(
    'as' => 'cat_edit',
    'uses' => 'CategoryController@editAction'
))->where('id', '[0-9]+');

这是我的控制器:

public function editAction($id){

    $category = Category::find($id);
    $categories = Category::all();

    return View::make('categories.edit', array(
        'category'    =>  $category ,
        'categories'  =>  $categories,
    ));
}

最后是我的观点:

@extends('layouts.main')

@section('title')
    Edit category
@stop

@section('content')
<h1>Add a Category</h1>

{{ Form::open(array('action' => 'CategoryController@editAction')) }}

{{ Form::form_lab('text', 'name', 'Name') }}

{{ Form::form_lab('textarea', 'description', 'Description') }}

{{ Form::form_select('parent', 'Parent', $categories) }}



<div class="form-actions">
    {{ Form::form_button('Validate') }}
</div>

{{ Form::close() }}

@stop

我一直在寻找几个小时,但我看不出我错在哪里。所有,我的其他路线工作正常。

谢谢 !

4

1 回答 1

2

您可以重写 Form::open 以改用 URL::action。请参阅Laravel 4:将什么作为参数传递给 Url 类?关于如何将参数传递给 URL::action。

例子:

{{ Form::open(array('url' => URL::action('CategoryController@editAction', ['123']) )) }}
于 2013-06-11T23:07:00.480 回答