【问题标题】:Laravel - refreshing postsLaravel - 令人耳目一新的帖子
【发布时间】:2020-05-02 19:25:02
【问题描述】:

我正在尝试在我的 Laravel 项目中创建刷新选项。我在我的CarsController 中创建了一个public function refresh()。这个想法是让created_at 获得当前时间,因为我的汽车是由orderBy('created_at'. 'desc')->get(); 订购的。所以这是我的public function refresh() 在我的CarsController

/**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */

    public function refresh($id)
    {
        $car = Car::find($id);
        $car->created_at = Carbon::now();
        $car->save();
        return redirect('/cars');
    }

这是我在刀片中的Form

{!!Form::open(['action' => ['CarsController@refresh', $car->id], 'method' => 'PUT'])!!}
   {{Form::hidden('_method', 'PUT')}}
   {{Form::submit('Refresh', ['class' => 'btn btn-success'])}}
{!!Form::close()!!}

这是在我的web.php 路线中:

Route::get('/cars/{id}', 'CarsController@refresh');

我做错了什么?请帮忙。谢谢!

【问题讨论】:

  • 您在迁移文件中使用$table->timestamps(); 吗?
  • @user8555937 是的,我愿意
  • 使用 Car::create() 创建记录后会自动插入时间戳;为什么要更新created_at时间戳?
  • @user8555937 我想在我的项目中创建refresh 选项。因此,当刷新帖子时,它将在帖子列表中排在第一位,因为我的 public function index() 是这样排序的 orderBy('created_at', 'desc')
  • 你已经重载了 PUT 方法,而你的路由需要 GET 方法:)

标签: laravel refresh posts


【解决方案1】:

HTML 表单不支持 PUT、PATCH 或 DELETE 操作。要解决此问题,请将您的表单更改为此。

{!!Form::open(['action' => ['CarsController@refresh', $car->id], 'method' => 'GET'])!!}
   {{Form::submit('Refresh', ['class' => 'btn btn-success'])}}
{!!Form::close()!!}

你将删除这一行,因为 laravel 会期望你有一个 put 请求而不是一个 get 请求。

{{Form::hidden('_method', 'PUT')}}

【讨论】:

  • 我在我的博客帖子上试过这个,因为我的汽车帖子被某种屏蔽了。我不知道汽车帖子上发生了什么,无论我做什么都保持不变,例如我删除了我的 EDIT 按钮,它仍然存在......无论如何,我在我的博客文章和 url 中尝试了这个,当我按下刷新按钮 http://localhost:8000/blogs/1? 时,它显示我可能是错误的路线?
【解决方案2】:

对于方法重载,请尝试以下代码:

{{Form::hidden('_method', 'GET')}}

【讨论】:

    猜你喜欢
    • 2020-01-28
    • 1970-01-01
    • 2018-10-11
    • 2014-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-23
    • 1970-01-01
    相关资源
    最近更新 更多