Laravel删除和更新

时间:2018-08-06 13:46:35

标签: php laravel

我创建了一个帖子和一个获取请求,如下所示:

public function getAllCustomer()
{

    $customer = \App\model\Customer::get();
    return $view = View::make('test')->with('customer', $customer);
}

public function addNewCustomer(Request $request)
{
    $validatedData = $request->validate([
        'Title' => 'required',
        'Name' => 'required|max:255'

    ]);

    return \app\model\Customer::create($request->all());
}

所以我可以读取所有数据并创建一些新数据,但是现在我想删除它们和/或更新它们,我找不到真正有用的东西,我将非常感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

要进行更新,您可以定义这样的路线

Route::put('customer/{customer}' , 'CustomerController@update');

您应该在表单中定义method_field('put') 并在控制器中创建一个名为update的功能

pulblic function update (Request $request , Customer $customer){
   $customer->update($request->all());
}

要更新要更新的字段,必须将它们添加到客户模型中的$ fillable数组中,了解laravel中的Mass Assignment,并且因为所有Eloquent模型都受到保护,可以防止批量分配默认。

用于删除: 路线:

Route::delete('customer/{customer} , 'CustomerController@destroy');

在控制器中删除客户的功能

public function destroy (Customer $customer){
  $customer->delete();
}

并将method_field('delete')添加到您的表单

表单示例

    <form  action="{{url("customer/{$customer->id}")}}" 
method="post">
         {{method_field('delete')}}
        //Html Elements Here
     </form>

熟悉路线和控制器后,您可以使用

Route::resource('customer','CustomerController');

这将为您创建所有必要的路线

已编辑:请注意,路线中的{customer}应该是您要更新或删除的客户的ID

答案 1 :(得分:0)

要删除您在路线中所做的事

Route::delete('customer/{customerId}', 'CustomerController@delete')

在控制器中

public function delete(Request $request, $customerId)
{
    $user    = $request->user();

    $customer= $user->customers()->find($customerId);
    $customer->delete();

    return back();
}

要在路线中进行更新

Route::patch('customers/{customerId}', 'CustomerController@update')

在控制器中

public function update(Request $request, $customerId)
{
    $user    = $request->user();

    $customer= $user->customers()->find($customerId);
    $customer->update($request->all());

    return back();
}

文档https://laravel.com/docs/5.6/eloquent#updates

中的更多信息