Php 我有3个表与关系。第一个表有另一个表的外部id,这两个表都有。我想知道获取数据的确切查询 3款-
1.1)产品型号-Php 我有3个表与关系。第一个表有另一个表的外部id,这两个表都有。我想知道获取数据的确切查询 3款-,php,mysql,laravel,model-view-controller,Php,Mysql,Laravel,Model View Controller,1.1)产品型号- 类产品扩展模型 { 受保护的$table='product_table(TableName)'; 公共职能银行() { 返回$this->belongTomany(Bank::class,'Bank_table','Bank_id(ForeignKey)','id(PrimaryKey)'; } 公共功能产品_类() { 返回$this->belongToMany(ProductCategory::class,'ProductCategory_table','ProductC
类产品扩展模型
{
受保护的$table='product_table(TableName)';
公共职能银行()
{
返回$this->belongTomany(Bank::class,'Bank_table','Bank_id(ForeignKey)','id(PrimaryKey)';
}
公共功能产品_类()
{
返回$this->belongToMany(ProductCategory::class,'ProductCategory_table','ProductCategory_id(ForeignKey)','id(PrimaryKey)';
}
}
1.2)银行模式-
类库扩展模型
{
受保护的$table='bank_table(TableName)';
公共功能产品()
{
return$this->hasMany('App\Models\Product','id(PrimaryKey)','bank\u id(ForeignKey)';
}
}
1.3)产品类别模型-
类ProductCatgory扩展模型
{
受保护的$table='mudra5_productcategory';
公共功能mudra5_产品()
{
返回$this->hasMany('App\Models\Product');
}
}
public function cat()
{
$alldata=Bank::with(['product'])->first();
dd($alldata->product[0]->product\U name);
}
3.路线-
Route::get('/借用者_profile',借用者权限\statementController@cat')->名称(“mudra5_产品”)代码>
桌子-
4.1)产品表-
id(整数主键)
产品名称(varchar(100))
银行识别码(外键)
类别识别码(外键)
1.
p1
2.
p2
如果放置外键,则关系为HasMany belongsTo(1-N),例如,如果每个产品都有一个类别,则我们将类别_id的外键放置在产品表中,因为它只能是一个
在您的例子中,您使用了belongToMany not belong,因此产品可以有许多类别,但您也在表中添加了一个外键,该外键与belongToMany不符
你不能把许多和所有的东西放在一起。选择其中一个
belongToMany是N-N关系的一个有力的关系,它们需要一个透视表,没有表可以容纳另一个_id,因此您可以创建一个同时具有id的picot表,该表将处理关系查询流量
如果您想保护所呈现的关系,则需要5个表(而不是3个)
产品
类别
银行
类别产品
银行产品
产品
身份证件
产品名称
1.
p1
2.
p2
belongtomany
适用于多对多关系。由于每个产品只属于一家银行或一个类别,因此您需要belongsTo