Php Laravel 4表单模型与动态表单绑定未正确填写

Php Laravel 4表单模型与动态表单绑定未正确填写,php,mysql,forms,laravel-4,model-binding,Php,Mysql,Forms,Laravel 4,Model Binding,我无法正确加载动态窗体。我有一个表单,用户可以单击一个按钮,将输入字段添加到他们的内容中。我已经能够对信息进行json_编码和存储,但当我尝试编辑表单时,Laravel只创建和填充默认输入,而忽略了用户创建的输入字段和数据。如何获得Laravel的表单模型绑定以显示附加字段和信息?或者我只是表单模型绑定不正确?用户可以按“添加另一个围栏”,表单的另一个副本将添加到底部。因此,在这种情况下(我没有包括整个表单,因为它很长),他们可以按“添加另一个围栏”按钮,另一个输入类为“gateNumber”,

我无法正确加载动态窗体。我有一个表单,用户可以单击一个按钮,将输入字段添加到他们的内容中。我已经能够对信息进行json_编码和存储,但当我尝试编辑表单时,Laravel只创建和填充默认输入,而忽略了用户创建的输入字段和数据。如何获得Laravel的表单模型绑定以显示附加字段和信息?或者我只是表单模型绑定不正确?用户可以按“添加另一个围栏”,表单的另一个副本将添加到底部。因此,在这种情况下(我没有包括整个表单,因为它很长),他们可以按“添加另一个围栏”按钮,另一个输入类为“gateNumber”,新创建的id为“gateNumber_2”,将显示在底部。如果有人知道如何绑定和显示动态数据,或者指出我的错误所在,我们将不胜感激!非常感谢你

以下是我的编辑路线:

/*Edit Orders (GET)*/
Route::get('orders/{orders}/edit', array(
    'as'    => 'order-edit',
    'uses'  => 'OrderController@getEdit'
));
/*Edit Order (POST)*/
    Route::post('/orders/{orders}/edit', array(
    'as'    => 'order-edit-post',
        'uses'  => 'OrderController@postEdit',
    ));
视图(或至少是一个片段,表单很长):


使用以下命令时,Laravel会将数据绑定到表单:

{{ Form::model($order, ...) }}

但是在javascript中,您没有使用后者来创建这些新字段


无论如何,这是通过Javascript无法实现的,您必须在PHP(Laravel)中执行它。但是,您可以通过ajax从数据库中收集这些信息。

您的gateNumber_2是通过javascript添加的,还是您需要创建一个新的请求?相关的部分,你的新选择的创建丢失了…它是由Javascript创建的,我知道它是有效的,所以我认为它与如何让Laravel完全绑定表单无关,但我会把它放上去。该死,它不允许我编辑问题,但下面是代码:`$(document.ready(function(){$('#btnAddFence')。单击(函数(){var num=$('.inputFence').length;var newElem=$('.inputFence:last').clone();$('.inputFence:last').after(newElem);$('.btnDelFence').removeAttr('disabled');var parts=$('.fenceHeight:last').attr('name').split(“”;$)('fenceHeight:last').attr').attr').attr('name').split(“”);parts('name','name',parts.join(“”);parts=$);parts=$)[1] ++;$('.taines:last').attr('name',parts.join(“”);var newElem=$('.inputFence:last').clone();我通过每个输入的$('.taines:last').attr…行重复parts=…的过程。简而言之,对于每个输入,它按类抓取每个输入,在“\ux”处分割id,在id末尾的数字上添加一个,将两个部分重新连接,并将它们添加到底部新创建的div中。太棒了,感谢您为我指明了正确的方向,我非常感谢!
public function getEdit($id){
        $order = Order::where('id', '=', $id);

        if($order->count()) {
            $order = $order->first();
            $order->order_serialized = json_decode($order->order_serialized);

            foreach($order->order_serialized as $key => $value){
                $order->$key = $value;
            }
            return View::make('orders.edit')
                    ->with('order', $order);
        }   else {
            return App::abort(404);
        }
    }

    public function postEdit($id){
        $validator = Validator::make(Input::all(),
            array(
                'order_name'            =>'required',
                'phone'                 =>'required|min:10|numeric',
                'email'                 =>'required',
                'st_address'            =>'required',
                'post_date'             =>'required',
            )           
        );

        if($validator->fails()){
            return Redirect::route('order-edit', $id)
                    ->withErrors($validator)
                    ->withInput()
                    ->with('global', 'You done messed up.');
        }   else {
            /*Edit Order*/
            $order                      = Order::find($id);

            $order->order_name          = Input::get('order_name');
            $order->phone               = Input::get('phone');
            $order->email               = Input::get('email');
            $order->st_address          = Input::get('st_address');
            $order->post_date           = Input::get('post_date');
            $order->order_serialized    = json_encode(Input::except('_token', 'submit'));

            if($order->save()){
                return Redirect::route('home')
                        ->with('global', 'Your order has been edited.');
            }
        }

        return Redirect::route('home')
                ->with('global', 'Your order could not be edited.');

    }
{{ Form::model($order, ...) }}
{{ Form::text('order_name') }}