【问题标题】:Update dateTime column with laravel使用 laravel 更新 dateTime 列
【发布时间】:2018-09-16 22:04:29
【问题描述】:

我的数据库中有一个带有 pin_date 列的 pin 表。

在我的迁移中,我有这个:

$table->dateTime('pin_date')->nullable();

我有一个指向发布路线的按钮

Route::post('/pins/pin-date/{id}', 'PinsController@pinDate');

导致 pinDate 控制器方法:

public function pinDate($id)
{
    $pin = Pin::find($id);

    $pin->save();
}

当我单击按钮并点击路线时,我想将数据库中的 pin-date 列更新为当前日期和时间。我不确定该怎么做。任何帮助将不胜感激!谢谢!

【问题讨论】:

    标签: mysql database laravel eloquent laravel-5.6


    【解决方案1】:

    只要模型为saving,我都会这样做,您可以绑定到modelboot 函数并将其设置在那里:

    public static function boot()
    {
        parent::boot();
    
        static::saving(function($pin) {
            $pin->pin_date = \Carbon::now()
        });
    }
    

    如果您想更新此值而不是在保存模型时处理它 - 例如通过单击按钮,您可以使用 Ajax。您将需要 1.) 路由,2.) 点击处理程序,3.) AJAX 请求和 4.) 处理请求的控制器:

    使用 Ajax 的单击处理程序:

    $('.btn').on('click', function(e) {
        $.ajax({
            url: '/route/to/update/my/pin' + $(this).closest('.pin').data('id')
        });
    });
    

    然后是一条路线:

    Route::post('/route/to/update/my/pin/{id}', 'PinController@updatePinDate');
    

    然后制作控制器方法并相应更新:

    public function updatePinDate(Request $request, Pin $pin)
    {
        $pin->pin_date = \Carbon::now();
        $pin->save();
    }
    

    如果您不想使用 javascript,您可以使用具有相同路由/控制器方法的标准表单:

    <form action="/route/to/update/my/pin/{{ $pin->id }}" method="POST">
         {{csrf_field()}}
    
         <button type="Submit"> Update Pin Date </button>
    </form>
    

    【讨论】:

    • 好的,我将如何做到这一点,当按钮被点击时它会触发它?
    • @L.Fox AJAX。使用 Javascript 向路由发出 POST 请求,将该方法路由到控制器。对不起,我一定错过了。你在使用任何 javascript 框架或 jQuery 吗?
    • 我实际上是 laravel 的新手,几乎没有使用 JavaScript 的经验,所以我没有使用任何 JavaScript
    • @L.Fox 添加了完成此操作所需的所有方法和信息,无论是否使用 javascript
    • 去掉\Carbon::now();,只使用now()
    【解决方案2】:
    public function pinDate($id)
    {
        $pin = Pin::find($id);
        $pin->pin_date = \Carbon\Carbon::now();
        $pin->save();
    }
    

    我希望它有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-21
      • 2014-04-01
      • 1970-01-01
      • 2017-08-29
      • 1970-01-01
      • 2022-01-06
      • 1970-01-01
      相关资源
      最近更新 更多