我在mydatabase中有一个表。我想创建两个数据模态。 cakephp有可能吗?
其他信息
有一个用户表。用户可以是教师或学生。 如果用户是教师,则有不同的模态,对于学生,也有不同的数据模式。
答案 0 :(得分:0)
当然,您可以使用相同的表名创建不同的模型。为此,请使用$ useTable属性(而不是$ table)将每个模型与特定表链接:
class Teacher extends AppModel {
public $useTable = 'User';
}
答案 1 :(得分:0)
在CakePHP2中,您可以使用模型的$useTable
属性来设置要使用的表:
class Example extends AppModel {
public $useTable = 'exmp'; // This model uses a database table 'exmp'
}
看起来可能需要在CakePHP 3中以不同的方式完成(或者v3添加了不同的方式)(参见this page)
use Cake\ORM\TableRegistry;
$users = TableRegistry::get('Users');
$user = $users->newEntity(['email' => 'mark@example.com']);
$users->save($user);
答案 2 :(得分:0)
在CakePHP2中
class Teacher extends AppModel {
public $useTable = 'users';
}
但是你应该使用关系来区分不同的用户类型,你可以通过简单地让Users表包含核心信息,然后创建一个链接的UserType表来指定类型,即
用户表
id,user_type_id,用户名,密码,已创建,已修改
1, 1 ,Stephen,somehash,2015-04-15 00:00:00,2015-04-15 00:00:00
2, 2 ,Alex,somehash,2015-04-15 00:00:00,2015-04-15 00:00:00
3, 2 ,Jane,somehash,2015-04-15 00:00:00,2015-04-15 00:00:00
用户类型表
id,name,created,modified
1 ,老师,2015-04-15 00:00:00,2015-04-15 00:00:00
2 ,学生,2015-04-15 00:00:00,2015-04-15 00:00:00
查看上面的数据示例,您将看到Stephen是教师,Alex是学生而Jane是学生。
这使它保持中心,您不需要在多个地方编写模型方法,这些链接有更多的关系信息。
CakePHP2:http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html
CakePHP3:http://book.cakephp.org/3.0/en/orm/associations.html