Yii Framework Forum: User Login Timestamp in TBL hinzufügen - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

User Login Timestamp in TBL hinzufügen Rate Topic: -----

#1 User is offline   wpler 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 14
  • Joined: 25-May 15
  • Location:Mallorca / Spain

  Posted 09 June 2015 - 03:38 PM

Guten Abend,

ich bin noch totaler Newbie mit Yii2, finde das aber echt genial! Nun habe ich das Advanced Template installiert und wollte mal nun die User Authentifizierung um eine weitere Spalte "lastlogin_at" (also Timestamp des letzten Logins) erweitern.

Ich habe schon diverse Versuche unternommen, nichts hat aber funktioniert.

  • common/models/User.php um eine Methode erweitert und versucht diese über den SiteController in der Login Action zu benutzen. Das funktionierte nicht (error).
  • jetzt habe ich in der common/models/User.php in der Methode behaviors einen eigenen Behavior namens UserInfo hinzugefügt. Die common/components/UserInfo.php leitet von Behavior ab und hat nur die Methode setLoginTimestamp (siehe unten). Tja.. nu stehe ich auf dem Schlauch.. wie speichere ich jetzt beim Login denn den Timestamp in der Tabelle?


/common/components/UserInfo.php:
<?php

namespace common\components;

use yii\base\Behavior;

class UserInfo extends Behavior
{
    /**
     * Set Login Timestamp
     */
    public function setLoginTimestamp() {
        $this->lastlogin_at = time();
        $this->save();
    }
}


/common/models/User.php:
    public function behaviors()
    {
        return [
            TimestampBehavior::className(),
            UserInfo::className(),
        ];
    }


Kann mir hier jemand den Anstoß geben, wie ich da beim Login den Login-Timestamp in die Spalte lastlogin_at hineinbekomme?

Schönen Abend noch,
Stefan
0

#2 User is offline   J-C 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 5
  • Joined: 26-March 15

Posted 20 June 2015 - 02:50 AM

Hi Stefan,

bin selbst Yii2 Newbie, aber folgender code funktioniert bei mir:
    public function behaviors()
    {
        return [
            'timestamp' => [
                'class' => 'yii\behaviors\TimestampBehavior',
                'attributes' => [
                                    ActiveRecord::EVENT_BEFORE_INSERT => ['created_at', 'updated_at'],
                                    ActiveRecord::EVENT_BEFORE_UPDATE => ['updated_at'],
                                ],
                'updatedAtAttribute' => 'last_login',
                'value' => new Expression('NOW()'),
            ],
        ];
    }


und dann

   /**
    * Update last login timestamp
    */
    public function setLoginTime() {
        $this->touch('last_login');
    }


Hoffe es hilft.
J-C
0

#3 User is offline   wpler 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 14
  • Joined: 25-May 15
  • Location:Mallorca / Spain

Posted 15 July 2015 - 10:06 AM

Hi J-C,

danke für deine Antwort... aber ich stehe da wohl irgendwie etwas auf der Leitung, denn bei mir wirft das ein:

Setting unknown property: yii\behaviors\TimestampBehavior::updateAtAttribute

Gesetzt habe ich den TimestampBehavior in der User.php Klasse.
0

#4 User is offline   jim. 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 150
  • Joined: 28-June 12
  • Location:Germany

Posted 16 July 2015 - 08:39 AM

In deiner Fehlermeldung steht updateAtAttribute.
Korrekt wäre updatedAtAttribute, also mit "d"...
0

#5 Guest_Zwebmodx_*

  • Group: Guests

Posted 07 March 2016 - 11:45 AM

dazu vielleicht eine passende frage:

kann ich einem user erlauben, sowohl samtliche news zu bearbeiten, aber bei den seiten den zugang fur eine einzige seite verwehren?
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users