首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >laravel 4-call_user_func_array()

laravel 4-call_user_func_array()
EN

Stack Overflow用户
提问于 2014-04-21 15:52:34
回答 2查看 1.4K关注 0票数 0

我试图在数据库中插入一些数据。我创建了包含所有字段和控制器的表单。CarController.php

代码语言:javascript
复制
public function create() {
        // load the create form (app/views/pages/create.blade.php)
        return View::make('pages.create');
    }

    public function store() {

            // store
            $data = new Car;
            $data->id = Input::get('id');
            $data->save();

            // redirect
            Session::flash('message', 'Successfully created data!');
            return Redirect::to('pages/cars');

    }

routes.php

代码语言:javascript
复制
Route::resource('cars', 'CarController');
Route::post('desc', array('uses' => 'CarController@show'));
Route::post('create', array('uses' => 'CarController@create'));
Route::post('store', array('store' => 'CarController@store'));

create.blade.php

代码语言:javascript
复制
 {{ Form::open(array('url' => 'store', 'class'=>'form-horizontal')) }}
            <div class="form-group">
                {{ Form::label('id', 'Vehicle ID',array('class'=>'control-label col-lg-4')) }}
                <div class="col-lg-8">
                {{ Form::text('id', Input::old('textId'), array('class' => 'form-control', 'placeholder'=>'Vehicle ID')) }}
                </div>
            </div>             
            {{ Form::submit('Create the Car!', array('class' => 'btn btn-primary')) }}
        </div>

问题在于它显示了以下错误:希望参数1是一个有效的回调,没有数组或字符串给定,我不知道我做错了什么,因为我是新来的拉拉

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-21 16:56:49

您使用的是一个资源控制器,这就是为什么您只需要对此进行一次路由声明,如下所示:

代码语言:javascript
复制
Route::resource('cars', 'CarController');

你还宣布了下列路线:

代码语言:javascript
复制
Route::post('desc', array('uses' => 'CarController@show'));
Route::post('create', array('uses' => 'CarController@create'));
Route::post('store', array('store' => 'CarController@store'));

实际上,您不需要这些路由声明,只需要使用第一条路由,这将为资源控制器创建路由。例如,您的路线如下所示:

代码语言:javascript
复制
Method |   Url         | Action | Route Name
--------------------------------------------
GET    | /cars/create  | create | cars.create // domain.com/cars/create using GET
POST   | /cars         | store  | cars.store  // domain.com/cars using POST

还有更多,您应该检查资源控制器。在本例中,您的控制器中有两个方法,如果您使用使用url方法的yourdomain.com/cars/create (如果您从浏览器的地址栏导航),那么它将调用create方法,如果您使用POST方法向yourdomain.com/cars提交一个form,那么它将调用store方法,您的所有表单字段将在$_POST数组中可用,您可以使用Input::get('id')来获得id字段的值。有关更多信息,请查看套接字。

票数 0
EN

Stack Overflow用户

发布于 2014-04-21 16:46:52

更改route.php文件中的这一行

代码语言:javascript
复制
Route::post('store', array('store' => 'CarController@store'));

代码语言:javascript
复制
Route::post('uses', array('uses' => 'CarController@store'));

“使用”指定访问路由时要调用的函数

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23200810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档