我有两个MSSQL表,所以我创建了两个模型[Adress]和[Webshop]。两个表中的外键都是Adresse。
1.Model [Adress]
class Adress extends Model
{
protected $table = "Adress";
protected $primaryKey = 'Adresse';
public $timestamps = false;
public function webshop()
{
return $this->hasOne('App\Webshop', 'Adresse');
}
}
2.Model [WebShop]
class Webshop extends Model
{
protected $table = "Webshop";
protected $primaryKey = 'Adresse';
public $timestamps = false;
public function adress()
{
return $this->belongsTo('App\Adress','Adresse');
}
}
我想创建一个包含来自第一和第二个表的数据的表,如webshopID,mobile位于[Webshop]表中,并在[Adress]表中进行地址。我认为这是这两个表之间的一对一关系。
php artisan tinker
中的:
App\Adress::all(); -> this is working
App\Adress::find(2910)->webshop -> this is also working
App\Adress::with('webshop')->get() -> this is NOT working
我想同时从这两个表中检索数据。这可能是一种关系还是我可以使用连接?
编辑: 也许我的外国人错了
答案 0 :(得分:0)
尝试将Address
模型中的关系更改为
$this->hasOne('App\Webshop', 'Adresse', 'Adresse');
并在Webshop
模型中
$this->belongsTo('App\Address', 'Adresse', 'Adresse');
修改强>
现在检索你可以做的关系
$webshop = App\Address::find($id)->webshop;
$address = App\Webshop::find($id)->address
答案 1 :(得分:0)
请试试这个 -
use App\Adress;
use App\Webshop;
$result = Webshop::with('Adress')->where('Webshop.id',$id)->get();
or
$result = Adress::with('Webshop')->where('Adress.id',$id)->get();
希望这会对你有所帮助。