Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Qué funciones del sistema tiene ThinkPHP?En primer lugar, permítanme presentarles las funciones de ThinkPHP en detalle: Método M El método M se utiliza para crear una instancia de la clase del modelo básico. La diferencia con el método D. es: 1. No se requiere personalización La clase de modelo reduce la carga de IO y tiene mejor rendimiento 2. Después de la creación de instancias, solo se pueden llamar métodos en la clase de modelo base (el valor predeterminado es la clase de modelo); se puede especificar la información de la base de datos y de la conexión de la base de datos; el poder del método D se refleja en qué tan poderosa es la clase de modelo personalizado que encapsula, pero a medida que la clase de modelo base de la nueva versión del marco ThinkPHP se vuelve cada vez más poderosa, M El método es más práctico que el método D. El formato de llamada del método M: M ('[nombre del modelo básico:] nombre del modelo', 'prefijo de la tabla de datos', 'información de conexión de la base de datos') Echemos un vistazo al uso específico del método M: 1. Cree una instancia del clase de modelo básico (Modelo) sin definir ningún modelo, podemos usar el siguiente método para crear una instancia de una clase de modelo para operaciones: // Crear una instancia del modelo de usuario $Usuario = M('Usuario' // Realizar otras operaciones de datos $Usuario - gt;select(); Este método es el más simple y efectivo, porque no requiere definir ninguna clase de modelo, por lo que admite llamadas entre proyectos. La desventaja es que no existe una clase de modelo personalizada, por lo que es imposible escribir lógica empresarial relevante y solo se pueden completar operaciones CURD básicas. $Usuario = M('Usuario'); Es equivalente a que el método M tiene la misma función singleton que el método D y no se volverá a crear una instancia cuando se llame varias veces. El parámetro de nombre del modelo del método M se convertirá automáticamente a minúsculas cuando se convierta en una tabla de datos, lo que significa que la regla de nomenclatura de la tabla de datos de ThinkPHP está completamente en minúsculas. En otras palabras, la regla de nomenclatura de las tablas de datos de ThinkPHP es todo en minúsculas. 2. Cree instancias de otras clases de modelos públicos *** Debido a que no hay una definición de clase de modelo en el primer método de creación de instancias, es difícil encapsular algunos métodos lógicos adicionales, pero la mayoría de las veces, es posible que solo necesite extender algunos comunes. lógica En este momento, puede probar los siguientes métodos. $User = M('CommonModel:User'); En cambio, en realidad es equivalente a: $User = new CommonModel('User'); Debido a que la clase del modelo del sistema se puede cargar automáticamente, no necesitamos hacerlo manualmente antes. Importación de clase de creación de instancias. La clase de modelo CommonModel debe heredar de Model. Podemos definir algunos métodos lógicos comunes en la clase CommonModel, lo que puede evitar la necesidad de definir una clase de modelo específica para cada tabla de datos si su proyecto tiene más de 100 tablas de datos, y en la mayoría. casos Las siguientes son algunas operaciones CURD básicas, pero algunos modelos tienen una lógica de negocios compleja que debe encapsularse, por lo que el primer tipo de clase de modelo no es necesario. La lógica empresarial debe encapsularse, por lo que la combinación del primer y segundo método es una buena opción. 3. Pase el prefijo de la tabla, la base de datos y otra información. El método M tiene tres parámetros. El primer parámetro es el nombre del modelo (que puede incluir clases de modelo básicas y bases de datos). déjelo en blanco para tomar el prefijo de tabla configurado), el tercer parámetro se usa para configurar la información de conexión de la base de datos utilizada actualmente (deje en blanco para obtener la información de conexión de la base de datos configurada para el proyecto actual), por ejemplo: $ Usuario = M('db2.User', 'think_'); Representa la creación de instancias de la clase de modelo Modelo y la operación de la tabla think_user en la base de datos db2. Si el segundo parámetro se deja en blanco o no se pasa, significa que se utilizará el prefijo de la tabla de datos de la configuración actual del proyecto. Si la tabla de datos que se está operando no tiene un prefijo de tabla, puede usar: $User = M('db1.User', null); significa crear una instancia de la clase de modelo Modelo y operar la tabla de usuarios en la base de datos db1.

¿Qué funciones del sistema tiene ThinkPHP?En primer lugar, permítanme presentarles las funciones de ThinkPHP en detalle: Método M El método M se utiliza para crear una instancia de la clase del modelo básico. La diferencia con el método D. es: 1. No se requiere personalización La clase de modelo reduce la carga de IO y tiene mejor rendimiento 2. Después de la creación de instancias, solo se pueden llamar métodos en la clase de modelo base (el valor predeterminado es la clase de modelo); se puede especificar la información de la base de datos y de la conexión de la base de datos; el poder del método D se refleja en qué tan poderosa es la clase de modelo personalizado que encapsula, pero a medida que la clase de modelo base de la nueva versión del marco ThinkPHP se vuelve cada vez más poderosa, M El método es más práctico que el método D. El formato de llamada del método M: M ('[nombre del modelo básico:] nombre del modelo', 'prefijo de la tabla de datos', 'información de conexión de la base de datos') Echemos un vistazo al uso específico del método M: 1. Cree una instancia del clase de modelo básico (Modelo) sin definir ningún modelo, podemos usar el siguiente método para crear una instancia de una clase de modelo para operaciones: // Crear una instancia del modelo de usuario $Usuario = M('Usuario' // Realizar otras operaciones de datos $Usuario - gt;select(); Este método es el más simple y efectivo, porque no requiere definir ninguna clase de modelo, por lo que admite llamadas entre proyectos. La desventaja es que no existe una clase de modelo personalizada, por lo que es imposible escribir lógica empresarial relevante y solo se pueden completar operaciones CURD básicas. $Usuario = M('Usuario'); Es equivalente a que el método M tiene la misma función singleton que el método D y no se volverá a crear una instancia cuando se llame varias veces. El parámetro de nombre del modelo del método M se convertirá automáticamente a minúsculas cuando se convierta en una tabla de datos, lo que significa que la regla de nomenclatura de la tabla de datos de ThinkPHP está completamente en minúsculas. En otras palabras, la regla de nomenclatura de las tablas de datos de ThinkPHP es todo en minúsculas. 2. Cree instancias de otras clases de modelos públicos *** Debido a que no hay una definición de clase de modelo en el primer método de creación de instancias, es difícil encapsular algunos métodos lógicos adicionales, pero la mayoría de las veces, es posible que solo necesite extender algunos comunes. lógica En este momento, puede probar los siguientes métodos. $User = M('CommonModel:User'); En cambio, en realidad es equivalente a: $User = new CommonModel('User'); Debido a que la clase del modelo del sistema se puede cargar automáticamente, no necesitamos hacerlo manualmente antes. Importación de clase de creación de instancias. La clase de modelo CommonModel debe heredar de Model. Podemos definir algunos métodos lógicos comunes en la clase CommonModel, lo que puede evitar la necesidad de definir una clase de modelo específica para cada tabla de datos si su proyecto tiene más de 100 tablas de datos, y en la mayoría. casos Las siguientes son algunas operaciones CURD básicas, pero algunos modelos tienen una lógica de negocios compleja que debe encapsularse, por lo que el primer tipo de clase de modelo no es necesario. La lógica empresarial debe encapsularse, por lo que la combinación del primer y segundo método es una buena opción. 3. Pase el prefijo de la tabla, la base de datos y otra información. El método M tiene tres parámetros. El primer parámetro es el nombre del modelo (que puede incluir clases de modelo básicas y bases de datos). déjelo en blanco para tomar el prefijo de tabla configurado), el tercer parámetro se usa para configurar la información de conexión de la base de datos utilizada actualmente (deje en blanco para obtener la información de conexión de la base de datos configurada para el proyecto actual), por ejemplo: $ Usuario = M('db2.User', 'think_'); Representa la creación de instancias de la clase de modelo Modelo y la operación de la tabla think_user en la base de datos db2. Si el segundo parámetro se deja en blanco o no se pasa, significa que se utilizará el prefijo de la tabla de datos de la configuración actual del proyecto. Si la tabla de datos que se está operando no tiene un prefijo de tabla, puede usar: $User = M('db1.User', null); significa crear una instancia de la clase de modelo Modelo y operar la tabla de usuarios en la base de datos db1.

Si la base de datos que se está operando requiere una cuenta de usuario diferente, puede pasar la información de conexión de la base de datos, por ejemplo: $Usuario = M('Usuario', 'think_', 'mysql://user_a:1234@localhost:3306 /thinkphp'); Indica que la clase de modelo básico usa Model y luego usa la tabla think_user, la conexión de la base de datos usa la cuenta user_a y la base de datos operativa es thinkphp. El tercer parámetro de información de conexión se puede configurar usando una configuración DSN o una matriz, e incluso puede admitir parámetros de configuración. Por ejemplo, configure en el archivo de configuración del proyecto: 'DB_CONFIG'=gt; 'mysql://user_a:1234@localhost:3306/thinkphp'; luego puede usar: $User = M('User','think_', ' DB_CONFIG'); La clase del modelo base y la base de datos se pueden usar juntas, por ejemplo: $User = M('CommonModel:db2.User','think_'); para crear una instancia de un modelo jerárquico, podemos usar: M('UserLogic: User'); para crear una instancia de UserLogic, aunque esto no tiene mucho sentido. Porque se puede lograr la misma función usando D('User', 'Logic');. Explicación detallada de las funciones de ThinkPHP: Método R El método R se utiliza para llamar al método de acción del controlador, que es una mejora adicional y un complemento del método A. Para conocer el uso del método A, consulte aquí. Formato de llamada al método R: R('[Proyecto://][Grouping/]Module/Action', 'Parameters', 'ControllerLevelName') Por ejemplo, definimos un método de acción como: clase UserAction extiende Acción { detalle de función pública ( $ id){ return M('User' )->find($id }} Luego puede llamar al método de acción desde otros controladores a través de métodos R (generalmente los métodos R se usan para llamadas entre módulos) $data = R ('Usuario/detalle', array('5')); significa llamar al método de detalle del controlador de usuario (el método de detalle debe ser un método público y el tipo debe ser público), y el valor de retorno es consultar al usuario. datos con id 5. Si desea llamar a un método sin ningún parámetro, el segundo parámetro puede dejarse en blanco y usarse directamente: $data = R('User/detail' también se pueden admitir llamadas de proyectos y agrupaciones cruzadas, como R('); Admin/Usuario/detalle', array('5')); significa llamar al grupo Admin bajo el método de detalle del controlador de Usuario. R('Admin://User/detail', array('5')); significa llamar al método de detalle del controlador de usuario en el elemento de administrador. La recomendación oficial es no realizar demasiadas llamadas en la misma capa, lo que provocará confusión lógica. La parte llamada por public**** debe encapsularse en una interfaz separada. Puede utilizar las nuevas funciones de 3.1 multi-. controlador de capa para agregar la interfaz que se llamará. Una capa de controlador separada, por ejemplo, agregamos una capa de controlador Api, clase UserApi extends Action { public function Detail($id){ return M('User')-gt; $id);