Home > php教程 > PHP开发 > body text

A short tutorial on how to let thinkphp automatically complete session assignment in the model

高洛峰
Release: 2016-12-22 10:34:39
Original
1136 people have browsed it

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"];
  }
}
Copy after login

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

A short tutorial on how to let thinkphp automatically complete session assignment in the 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:

A short tutorial on how to let thinkphp automatically complete session assignment in the model

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
Copy after login

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
Copy after login

is equivalent to:

$_SESSION['name'] = 'value';
Copy after login

session value

Session取值使用:
$value = session('name');
 
相当于使用:
$value = $_SESSION['name'];
Copy after login

session deletion

session('name',null); // 删除name
 
相当于:
unset($_SESSION['name']);
 
要删除所有的session,可以使用:
session(null); // 清空当前的session
 
相当于:
$_SESSION = array();
Copy after login

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:

A short tutorial on how to let thinkphp automatically complete session assignment in the model

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!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template