【问题标题】:Laravel posting button from controller来自控制器的 Laravel 发布按钮
【发布时间】:2018-10-11 09:24:49
【问题描述】:

我正在尝试使用 ajax+laravel 填充我的数据库。但是当我试图发布我的删除按钮时,我得到了一些错误。 2 准确地说 1)我找不到一种方法让它从控制器内部调用destroy函数 2)我的刀片内部的 Javascript 没有执行(在刀片内部创建按钮时工作)我有问题的按钮

<form method="post" class="delete_form" action=" $this->callAction(\\'destroy\\', [\\'id\\' => $row[\\'id\\']]); ">
    <input type="hidden" name="_method" value="DELETE"/>
    <button type="submit" class="btn btn-outline-danger">Delete</button>
</form>

我正在尝试从同一个控制器内部执行此操作(这部分有效,我在刀片中创建了一个按钮(用于测试))

public function destroy($id)
{
    $userList = users::find($id);
    $userList->delete();
    return redirect()->route('users.index')->with('successs', 'Data Deleted');
} 

【问题讨论】:

  • "我的问题按钮" 这不是&lt;button&gt;,而是&lt;form&gt;。该动作应该指向一个路由,而不是调用控制器方法。
  • 嗨,我更新了代码只是为了更清楚。我想我尝试了你的建议 {{ route('users.destroy', ['id' => $row['id']]) }}" 但它根本没有执行。就像我在点击一个空按钮
    正是我试过
  • 您在编辑后的操作可能不起作用,因为它不是通过 Blade 解析的。 (您可以尝试 {{ route('users.destroy') }} 为您的 action)。 $id 应该是表单中的输入/隐藏字段,而不是表单的操作。您还需要在表单中添加@csrf

标签: php laravel controller


【解决方案1】:

使用{{route('/users/destroy', ['id' =&gt; $row['id'}])}}

formaction

【讨论】:

  • 告诉我你的路线文件@Demeteor
  • Route::resource('users','UserController'); Route::get('/users/index', 'UserController@index'); Route::get('/users/index/users', 'UserController@action')->name('index.action'); Route::get('/users/destroy', 'UserController@destroy')->name('users.destroy');这就是我在路线上的全部。
  • 虽然这可能会回答问题,但最好添加一些关于此答案如何有助于解决问题的描述。请阅读How do I write a good answer 了解更多信息。 From review
  • 您好,这仍然不起作用,我尝试在这里和那里做一些 ajax,添加新方法,但仍然没有被删除。
猜你喜欢
  • 2015-08-13
  • 1970-01-01
  • 2016-10-03
  • 2013-10-03
  • 1970-01-01
  • 2018-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多