im这样设置一对一(多态)
我的模型:
namespace App;
use Illuminate\Database\Eloquent\Model;
class Payement extends Model{
protected $table = 'payements';
protected $primaryKey = 'id';
public function payementable(){
return $this->morphTo();
}}
class Recu extends Model{
protected $table = 'recus';
protected $primaryKey = 'id';
public function payement(){
return $this->morphOne('App\Payement', 'payementable');
}}
我的表格架构
Schema::create('recus', function (Blueprint $table) {
$table->bigIncrements('id');
});
Schema::create('payements', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('numero')->unique();
$table->bigInteger('payementable_id');
$table->string('payementable_type');
$table->timestamps();
});
问题是它正在工作
App\Payement::find(1)->payementable;
此返回null
App\Recu::find(1)->payement;
这将返回空集合
Recu::first()->payement()->get()
答案 0 :(得分:1)
您提供的设置没有任何问题。请使用以下数据进行测试:
payements:
---------------------------------------------
|id|numero|payementable_type|payementable_id|
---------------------------------------------
|1 |1 |App\Recu |2 |
---------------------------------------------
recus:
----
|id|
----
|1 |
----
|2 |
----
|3 |
----