我用Builder插件创建了两个表:myplugin_cars_
和myplugin_cars_makes
:
# mysql > SHOW COLUMNS FROM myplugin_cars_;
+------------------+----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+----------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| make_id | int(10) unsigned | NO | | NULL | |
| model | varchar(191) | YES | | NULL | |
| reg_year | date | NO | | NULL | |
| mileage | varchar(191) | YES | | NULL | |
+------------------+----------------------+------+-----+---------+----------------+
# mysql > SHOW COLUMNS FROM myplugin_cars_makes;
+---------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+------------------+------+-----+---------+----------------+
| make_id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| make | varchar(191) | NO | | NULL | |
+---------+------------------+------+-----+---------+----------------+
我为每个表创建了两个用Builder插件创建的模型,并通过make_id
列将它们连接在一起的关系字段。
类Car包含以下关系:
public $hasOne = [
'make_id' => ['MyPlugin\Cars\Models\Make'],
];
但是,relation字段在下拉列表中仅显示一条记录,而不是myplugin_cars_makes
表中包含的所有记录。
您也可以在“ Make”类中逆转关系>
public $belongsTo = [ 'make_id' => ['MyName\Cars\Models\Car', 'key' => 'make_id'] ];
如果这不起作用
尝试改善“汽车”课程中的代码
public $hasOne = [ 'make_id' => ['MyName\Cars\Models\Make', 'key' => 'make_id'] ];
希望获得帮助