【问题标题】:put route return 500 error [duplicate]放置路线返回500错误[重复]
【发布时间】:2016-10-07 16:37:50
【问题描述】:

我正在尝试更新我的数据库中的行
有人告诉我,我需要为此创建 PUT 路由
所以我做了:

 Route::put('update/{id}/{done}', 'TasksController@update');

我的控制器:

class TasksController extends Controller {

public function index(){
    DB::statement("SET NAMES 'utf8'");
    $todolist = DB::select('select * from todo');
    return $todolist;
}

public function update($id, $done){
    DB::update('update todo set done = ? where id = ?',[$done,$id]);
}
}

当我尝试使用 ajax 获取 update/1/1 时,我在 java 脚本控制台上收到此错误:

 (index):110 PUT http://localhost:8080/ex/ex/public/update/1/1 500 (Internal Server Error)

当我从浏览器进入页面时,我得到:

 MethodNotAllowedHttpException in RouteCollection.php line 218:

还有一个文件列表,错误是什么,我该如何解决?

【问题讨论】:

  • 与浏览器交互时,最好根据请求使用 get 或 post。
  • 您是否告诉您的更新表单这是一种更新方法?
  • 浏览器不能做 PUT,你有告诉 Laravel 把 POST 当作 PUT 对待的隐藏表单域吗?
  • @MrCode 错误日志在哪里?我检查并且所有名称都正确
  • @MrCode 我查看错误日志,那里什么都没有,我在 php_log 中也看也没有,有什么想法吗?

标签: php laravel laravel-5


【解决方案1】:

这里有一些建议: 1.更新使用patch not put 2. 确保将 _token 添加到您的表单中 3. 在你的表单中添加 'method' => 'PATCH'

【讨论】:

  • 嘿,我使用 AJAX,我将方法更改为补丁,仍然收到 500 错误,有什么想法吗?
  • 你能发布你的ajax方法吗?
  • " 在你的表单中添加 'method' => 'PATCH'" 我遇到的任何浏览器都不支持。
  • 在 laravel 表单助手中支持
  • {!! Form::model($anything,['method'=>'PATCH','url'=>'update']) !!}
猜你喜欢
  • 2017-06-23
  • 2017-11-13
  • 1970-01-01
  • 2015-05-27
  • 2018-06-01
  • 2015-03-23
  • 2020-09-11
  • 2021-01-13
  • 2019-03-30
相关资源
最近更新 更多