【发布时间】:2017-06-26 13:53:24
【问题描述】:
大家好,我正在将我的 php 应用程序迁移到 laravel。在正式版中,我一直在使用 x-editable 进行内联编辑。现在,我想在 laravel 中做同样的事情。在我将要编辑的行的 id 传递给 controller
中的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 连接到 url,如下所示:
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 name 和 value 的 x-editable 格式
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(方法不允许)
希望我不会在这里混淆自己。提前感谢您的帮助。
【问题讨论】:
-
任何具体错误?
-
@PandhiBhaumik 刚刚用我遇到的错误更新了我的帖子。
标签: php jquery laravel x-editable