Home php教程 PHP开发 A short tutorial on how to let thinkphp automatically complete session assignment in the model

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

Dec 22, 2016 am 10:34 AM
session

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!

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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat Commands and How to Use Them
1 months ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to set session timeout in SpringBoot Session How to set session timeout in SpringBoot Session May 15, 2023 pm 02:37 PM

The problem was found in the springboot project production session-out timeout. The problem is described below: In the test environment, the session-out was configured by changing the application.yaml. After setting different times to verify that the session-out configuration took effect, the expiration time was directly set to 8 hours for release. Arrived in production environment. However, I received feedback from customers at noon that the project expiration time was set to be short. If no operation is performed for half an hour, the session will expire and require repeated logins. Solve the problem of handling the development environment: the springboot project has built-in Tomcat, so the session-out configured in application.yaml in the project is effective. Production environment: Production environment release is

How to solve session failure How to solve session failure Oct 18, 2023 pm 05:19 PM

Session failure is usually caused by the session lifetime expiration or server shutdown. The solutions: 1. Extend the lifetime of the session; 2. Use persistent storage; 3. Use cookies; 4. Update the session asynchronously; 5. Use session management middleware.

Solution to PHP Session cross-domain problem Solution to PHP Session cross-domain problem Oct 12, 2023 pm 03:00 PM

Solution to the cross-domain problem of PHPSession In the development of front-end and back-end separation, cross-domain requests have become the norm. When dealing with cross-domain issues, we usually involve the use and management of sessions. However, due to browser origin policy restrictions, sessions cannot be shared by default across domains. In order to solve this problem, we need to use some techniques and methods to achieve cross-domain sharing of sessions. 1. The most common use of cookies to share sessions across domains

What should I do if the php session disappears after refreshing? What should I do if the php session disappears after refreshing? Jan 18, 2023 pm 01:39 PM

Solution to the problem that the php session disappears after refreshing: 1. Open the session through "session_start();"; 2. Write all public configurations in a php file; 3. The variable name cannot be the same as the array subscript; 4. In Just check the storage path of the session data in phpinfo and check whether the sessio in the file directory is saved successfully.

What is the default expiration time of session php? What is the default expiration time of session php? Nov 01, 2022 am 09:14 AM

The default expiration time of session PHP is 1440 seconds, which is 24 minutes, which means that if the client does not refresh for more than 24 minutes, the current session will expire; if the user closes the browser, the session will end and the Session will no longer exist.

How to solve the problem that the Springboot2 session timeout setting is invalid How to solve the problem that the Springboot2 session timeout setting is invalid May 22, 2023 pm 01:49 PM

Problem: Today, we encountered a setting timeout problem in our project, and changes to SpringBoot2’s application.properties never took effect. Solution: The server.* properties are used to control the embedded container used by SpringBoot. SpringBoot will create an instance of the servlet container using one of the ServletWebServerFactory instances. These classes use server.* properties to configure the controlled servlet container (tomcat, jetty, etc.). When the application is deployed as a war file to a Tomcat instance, the server.* properties do not apply. They do not apply,

How to implement SMS login in Redis shared session application How to implement SMS login in Redis shared session application Jun 03, 2023 pm 03:11 PM

1. Implementing SMS login based on session 1.1 SMS login flow chart 1.2 Implementing sending SMS verification code Front-end request description: Description of request method POST request path /user/code request parameter phone (phone number) return value No back-end interface implementation: @Slf4j@ ServicepublicclassUserServiceImplextendsServiceImplimplementsIUserService{@OverridepublicResultsendCode(Stringphone,HttpSessionsession){//1. Verify mobile phone number if

What are the differences between JavaScript and PHP cookies? What are the differences between JavaScript and PHP cookies? Sep 02, 2023 pm 12:29 PM

JavaScriptCookies Using JavaScript cookies is the most effective way to remember and track preferences, purchases, commissions and other information. Information needed for a better visitor experience or website statistics. PHPCookieCookies are text files that are stored on client computers and retained for tracking purposes. PHP transparently supports HTTP cookies. How do JavaScript cookies work? Your server sends some data to your visitor's browser in the form of a cookie. Browsers can accept cookies. If present, it will be stored on the visitor's hard drive as a plain text record. Now, when a visitor reaches another page on the site

See all articles