2017-01-20 21 views
2

userカラムにviewed_atタイプのカラムがdateのデータベースがあります。laravelのログイン時にデータベースを更新してください

viewed_at

私は、すべてのユーザーのログイン時にそのフィールドを更新します。
私は、すべてのユーザーのログイン時にコードを実行したい -

$user = User::find(Auth::user()->id); 
$user->viewed_at = /* current date */; 
$user->save(); 

この問題で私を助けてください。
認証された人がリダイレクトされたコントローラでそれを行うように提案しないでください。

+0

'$ user-> viewed_at = 'NOW()';' – RiggsFolly

+0

のような単純なものかもしれませんが、認証コントローラでそれを行うべきです。問題は何ですか? –

答えて

1

5.3で。また、Laravelは常に認証されたユーザーのインスタンスを取得するため、auth()->user()オブジェクトを使用して1つのクエリを保存できます。

use Carbon\Carbon; 

.... 

protected function authenticated() 
{ 
    $user = auth()->user(); 
    $user->viewed_at = Carbon::now(); 
    $user->save(); 
} 
+0

'Auth \ LoginController.php'の' authenticated() 'メソッドを使うと、デフォルトのログイン機能が妨げられますか? – Advaith

+0

@Advaith no。 –

+1

デフォルトの '\ Auth \ LoginController'メソッドで常にauthenitcatingする限り、これは十分な解決策でなければなりません。 – devk

-1

試してください:あなたはAuth\LoginController.phpauthenticated()メソッドをオーバーライドして、そこにロジックを置くことができ

$user->viewed_at = date('Y-m-d H:i:s'); 
関連する問題