【问题标题】:Creating delete query in Laravel在 Laravel 中创建删除查询
【发布时间】:2019-03-21 22:06:06
【问题描述】:

我是使用 laravel 的新手。 我创建了删除功能,但它没有按我的意愿工作。这是视图中的代码,控制器以及路由。你们能告诉我代码中有什么问题吗?谢谢

查看:

<div class="btn-group">
    <a class="btn btn-info" href="{{  URL::to('/delete_data_tanah/{id}') }}">
        <i class="fa fa-close" 
        onclick="return confirm('Are you sure you want to delete this data?');">----</i>
    </a>
</div>

控制器:

public function delete($id){
    \App\Tbl_object::where('id_objects', '=', $id)->delete();
    return redirect('/list_tanah')->with('Success', 'Data telah dihapus');
}

路线:

Route::post('/delete_data_tanah/{id}', 'formulir_tanah@delete');

控制器:

class formulir_tanah extends Controller
{
    public function index()
    {
        $query_tanah = \App\Tbl_object::where('id_objects_referencies', '=', '1')->get();
        $query_view = \App\Tbl_view::where('id_objects_referencies', '=', '1')->get();
        $data = ['page_title' => 'Kertas Kerja Penilaian Tanah', 'query_tanah' => $query_tanah, 'query_view' => $query_view];
        return view('admin/list_tanah')->with($data);
    }
}

【问题讨论】:

  • 欢迎来到 Stack Overflow!您能否详细说明您的代码如何“不起作用”?你期待什么,实际发生了什么?如果您遇到异常/错误,请发布它发生的行和异常/错误详细信息。请edit这些详细信息,否则我们可能无法提供帮助。
  • 执行代码时是否有错误?
  • 能否为您的视图添加控制器的代码?
  • @FrankerZ 我可以点击按钮,但什么也没发生,也没有错误。什么也没发生。
  • @Capt.Teemo 没有错误,也没有发生任何事情。

标签: php sql laravel


【解决方案1】:

试试这个:

在您的blade.php 中,将{id} 更改为{$data-&gt;id}

<div class="btn-group">
<a class="btn btn-info" href="{{  URL::to('/delete_data_tanah/{$data->id}') }}">
    <i class="fa fa-close" 
    onclick="return confirm('Are you sure you want to delete this data?');">----</i>
</a>

然后在您的控制器中,添加 id 变量:

class formulir_tanah extends Controller { public function index(){ 
    //ambil semua data dari table categories
     $query_tanah = \App\Tbl_object::where('id_objects_referencies', '=', '1')->first(); 
     $query_view = \App\Tbl_view::where('id_objects_referencies', '=', '1') ->first(); 

     $data = ['id' => $query_view->id, 'page_title' => 'Kertas Kerja Penilaian Tanah', 'query_tanah' => $query_tanah, 'query_view' => $query_view ];

     return view('admin/list_tanah')->with($data);
}

您的代码不起作用,因为 laravel 不知道要删除哪一行,因为您的返回中没有特定的 id

【讨论】:

  • 我试过了,但我得到了这个错误:“这个集合实例上不存在属性 [id]。”
  • 我编辑了我的答案。尝试将get() 更改为first()
  • 我试过了,但它不起作用,现在我无法检索视图中的数据,但数据在那里..但没有显示在视图中
【解决方案2】:

将这些更改应用于您的代码:

Route::delete('/delete_data_tanah/{id}', 'formulir_tanah@delete');

在您看来,您需要将按钮包装在一个表单中

<form action="{{  URL::to('/delete_data_tanah/{id}') }}" method="post">
   @method('DELETE')
   @csrf
  <button class="btn btn-danger" type="submit">Delete</button>
</form>

【讨论】:

  • 我试过这个,但我得到了这个错误:protected function methodNotAllowed(array $others) { throw new MethodNotAllowedHttpException($others); }
  • 您的delete 函数是否也存在于控制器中? $others 来自哪里?
  • 是的,控制器中也存在删除功能..是问题吗?
猜你喜欢
  • 2019-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-26
  • 2021-08-27
  • 1970-01-01
  • 1970-01-01
  • 2015-12-15
相关资源
最近更新 更多