【发布时间】:2020-10-27 21:48:54
【问题描述】:
我的项目有一个表格,只是更新字段有问题。 我正在检查 PUT 或 PATCH ,但它没有用。 我删除了外键并重复检查,但问题没有解决。 我使用 lavavel 调试器并查看更新方法的请求参数的权利。 我检查请求正常但未发送到 mysql。 (mysql正在运行) (没有错误,但没有更新) 请帮助我。谢了。
edit.blade.php
<form action="{{ route('ProductCategory.update',$productCategory->id) }}" method="POST">
@csrf
@method('PATCH')
<input type="hidden" name="user_id" value="{{ $usr_id }}">
<input type="hidden" name="name" value="{{ $productCategory->name }}">
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>نام:</strong>
<input type="text" value="{{ $productCategory->name }}" class="form-control" disabled>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-6">
<div class="form-group">
<strong>ترتیب:</strong>
<select name="order_id" class="form-control">
@for($i = $cnt; $i >= 0; $i--)
<option value="{{$i+1}}" {{($productCategory->orderid == $i+1 ? "selected" : "")}}>{{$i+1}}</option>
@endfor
</select>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-6">
<div class="form-group">
<input type="checkbox" name="shown" style="margin: 30px 8px 30px 10px; transform : scale(2);" value="{{$productCategory->shown == 1 ? '1' : '0'}}" {{ ($productCategory->shown == 1 ? "checked" : "") }} onclick="$(this).val(this.checked ? '1' : '0')">
<strong>نمایش</strong>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12 text-center">
<button type="submit" class="btn btn-success">بروز رسانی</button>
</div>
</div>
</form>
型号
class ProductCategory extends Model
{
protected $table = 'product_category';
protected $primaryKey = 'id';
protected $fillable = [
'name', 'user_id', 'shown', 'order_id'
];
public $timestamps = true;
}
控制器
public function edit($id)
{
$cnt = ProductCategory::count();
$usr_id = Auth::id();
$productCategory = ProductCategory::find($id);
return view('ProductCategory.edit',compact('productCategory', 'cnt', 'usr_id'));
}
public function update(Request $request, ProductCategory $productCategory)
{
$shown = $request['shown'];
if (empty($shown)) {
$request['shown'] = 0;
}
$productCategory->update($request->all());
/*$productCategory->user_id = Auth::id();
$productCategory->name = $request->name;
$productCategory->shown = $request->shown;
$productCategory->order_id = $request->order_id;
$productCategory->save();*/
/*DB::table('product_category')
->where('id', $request['id'])
->update(
[
'shown' => $request['shown'],
'order_id' => $request['order_id'],
]
);*/
return redirect()->route('ProductCategory.index')
->with('success','رکورد با موفقیت بروزرسانی شد.');
}
迁移
public function up()
{
Schema::create('product_category', function (Blueprint $table) {
$table->id();
$table->foreignId('user_id')->constrained('users');
$table->string('name', 100)->unique();
$table->boolean('shown')->nullable()->default(true);
$table->tinyInteger('order_id');
$table->timestamps();
});
web.config
Route::resource('ProductCategory','ProductCategoryController');
dd($productCategory);
App\ProductCategory {#1401
#table: "product_category"
#primaryKey: "id"
#fillable: array:4 [▶]
+timestamps: true
#connection: null
#keyType: "int"
+incrementing: true
#with: []
#withCount: []
#perPage: 15
+exists: false
+wasRecentlyCreated: false
#attributes: []
#original: []
#changes: []
#casts: []
#classCastCache: []
#dates: []
#dateFormat: null
#appends: []
#dispatchesEvents: []
#observables: []
#relations: []
#touches: []
#hidden: []
#visible: []
#guarded: array:1 [▶]
}
【问题讨论】:
-
您在更新过程中收到了哪些错误消息?
-
请在此处添加路线代码,以便我们为您提供帮助。
-
在你的更新方法中尝试
dd($productCategory);如果你得到它正确,然后尝试调试更新结果$updateResult = $productCategory->update($request->all()); dd($updateResult ); -
向我显示错误且不显示错误
-
dd($productCategory);结果怎么样?
标签: php laravel eloquent laravel-7 facade