I believe that users who have used thinkphp know that thinkphp's model can complete many auxiliary functions, such as automatic verification, automatic completion, etc. Today, during development, I encountered the function of getting the session value
and then automatically assigning the value in the automatic completion. Please see the code for details. ;
class ArticlelModel extends Model { protected $_auto = array ( array('addtime','time',1,'function'), array('username','getName',1,'callback') ); //这个函数获取session里的name值 protected function getName(){ return $_SESSION["name"]; } }
You need to pay attention to the difference between the last parameter function and callback here;
function: When using a function, it will automatically go to Common/common.php to find the corresponding function;
callback: Use the callback method defined in the current model
The session function is a diversified operation function. Passing in different parameters can complete different functional operations, including the following functions. [-more-]
session initialization settings
If the name parameter of the session method is passed into an array, it means session initialization settings, for example:
session(array('name'=>'session_id','expire'=>3600 ));
Supported incoming session parameters include:
Session initialization setting method does not need to be called manually. It will be called automatically after the initialization work of the App class is completed. Usually the project only needs to configure the SESSION_OPTIONS parameter. The SESSION_OPTIONS parameter The setting is an array, and the supported index names are the same as the previous session initialization parameters.
By default, the system will automatically start the session after initialization. If you do not want the system to automatically start the session, you can set SESSION_AUTO_START to false, for example:
'SESSION_AUTO_START' =>false
After turning off automatic startup, you can use the public files of the project or in the controller Start the session by manually calling session_start or session('[start]').
session assignment
Session assignment is relatively simple, use it directly:
session('name','value'); //设置session
is equivalent to:
$_SESSION['name'] = 'value';
session value
Session取值使用: $value = session('name'); 相当于使用: $value = $_SESSION['name'];
session deletion
session('name',null); // 删除name 相当于: unset($_SESSION['name']); 要删除所有的session,可以使用: session(null); // 清空当前的session 相当于: $_SESSION = array();
session judgment
To determine whether a session value has been set , OK Use
session('?name');
Used to determine whether the session value named name has been set
Equivalent to:
isset($_SESSION['name']);
session management
session method supports some simple session management operation, the usage is as follows:
session('[operation name]');
Supported operation names include:
Usage examples are as follows:
session('[pause]'); // Pause session Write
session('[start]'); // Start session
session('[destroy]'); // Destroy session
session('[regenerate]'); // Regenerate session id
Localization support
If you pass in the prefix parameter when initializing the session settings or set the SESSION_PREFIX parameter separately, you can enable localized session management support. After starting the localized session, all assignment, value acquisition, deletion and judgment operations will automatically support the localized session.
After localized session support is turned on, the generated session data format changes from the original
$_SESSION['name'] to $_SESSION['prefix']['name']
Assuming the prefix is set to think, then assign a value Operation:
session('name','value'); //Setting session
is equivalent to:
$_SESSION['think']['name'] = 'value';
Value operation:
$value = session('name');
equivalent to using:
$value = $_SESSION['think']['name'];
Delete operation:
session('name',null);
equivalent to :
unset($_SESSION['think']['name']);
Clear operation:
session(null);
Equivalent to:
unset($_SESSION['think']);
Judgment operation :
session('?name');
Equivalent to:
isset($_SESSION['think']['name']);
More related articles on how to let thinkphp automatically complete session assignment in the model. Please pay attention to PHP Chinese website!