X-editable与laravel

时间:2017-06-26 13:53:24

标签: php jquery laravel x-editable

大家好我将我的php应用程序迁移到laravel。在正式版中,我一直使用x-editable进行内联编辑。现在,我想在laravel中做同样的事情。在我将要编辑的行的ID传递到我的控制器

中的update方法之前

这是我的代码看起来的样子(html):

<td data-id="{{$subject->id}}" data-type="text" data-name="{{$subject->name}}" class="name" data-pk="{{$subject->id}}">{{$subject->name}}</td>

路线:

Route::put('/subjects/update/{id}', 'SubjectsController@update');

脚本:

$.ajaxSetup({
    headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
});

我将id连接到网址,如下所示:

var id = $(this).attr('data-pk');

当我这样做时,它会以undefined而不是id进行连接。 如何通过正确的ID

$('#subjects').editable({
     container:'body',
     selector:'td.name',
     url:'/subjects/update/'+id,
     type:'PUT',
     validate:function(value){
        if ($.trim(value) === '') {
            return "Field is required";
         }
     }
});

控制器:

在我的控制器中,这是我在没有x-editable的情况下执行此操作的方法,如何更新它以匹配用户pk namevalue

public function update(Request $request, $id)
{
    //

    $rules = array (
        'name' => 'bail|required|max:20|min:5|unique:subjects,name,'.$id,
        'level' => 'bail|required|min:4'
    );
    $validator = Validator::make ( $request->all(), $rules );
    if ($validator->fails ()) {
        return response()->json ( array (

         'errors' => $validator->getMessageBag ()->toArray ()
        ) );
    }
    else {
        $subject = Subject::findOrFail($id);
        $subject->name = $request->name;
        $subject->level = $request->level;
        $subject->save();
        return response ()->json ( $subject );
    }

}

这是我现在得到的错误:

  

POST http://127.0.0.1:8000/subjects/update/undefined 405(方法不允许)

希望我不要在这里混淆自己。在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

请将您的路线更新为发布,而不是投放

Route::post('/subjects/update/{id}', 'SubjectsController@update');

xEditable发出POST请求而不是Put请求

享受编码!