【发布时间】:2017-06-12 18:23:48
【问题描述】:
我来这里是因为我对一对多的 Eloquent 关系有疑问,我已经测试了一周以来,但无事可做。我在这里尝试最后一次机会,在此之后,我将尝试 Database: Query Builder,但我更喜欢使用 Eloquent 执行我的代码。
为了简单起见,我想通过 id 任务显示不同的家具使用,所以一个任务有很多家具。
所以我给你一个问题,我将关系放入我的模型中,当我调用函数 HasMany 时,它返回给我一个空对象...
我在 git bash 上使用 php artisan tinker,但经过一千次尝试,它无法正常工作。 我向您展示了我对 GitBash 的尝试以及我的代码。
当我这样做时">>> $comments = App\BonIntervention::find(2003);"
Tinker 向我展示了正确的东西,我的表的 ID“2003”与我的模型相关,以及他的所有组件。但是当我这样做之后:
"$comment = $comments->bonInterventionFournitures"
I'have this answer "Illuminate\Database\Eloquent\Collection {#810
all: [],
}"
对于很多尝试不同的名称/方法,他总是一样的,就像我的桌子是空的,但它们不是......
这里你有我的“任务”模型,当我阅读文档 Laravel eloquent HastoMany 时,似乎你可以传递给返回,第一个参数是命名空间,第二个参数是表的外键,对于第三个参数,主键。所以我确实喜欢这个,我希望我没有误会自己。
namespace App;
use Illuminate\Database\Eloquent\Model;
class BonIntervention extends Model
{
protected $primaryKey = 'Id_TTa';
protected $table = 'T_Taches';
public $timestamps = false;
public function bonInterventionFournitures(){
return $this->hasMany('App\BonInterventionFournitures', 'Id_TTa', 'Id_TTaDFo');
}
}
现在它是家具的模型。 (返回中的参数方法相同)
namespace App;
use Illuminate\Database\Eloquent\Model;
class BonInterventionFournitures extends Model
{
protected $table = 'T_Taches_Details_Fournitures';
protected $primaryKey = 'Id_TTaDFo';
public function bonInterventions(){
return $this->belongsTo('App\BonIntervention', 'Id_TTa', 'Id_TTa');
}
}
我可以向您展示我对该表的迁移。 首先,表格任务(我没有给你展示整个表格,因为它包含很多信息。
public function up()
{
Schema::create('T_Taches', function(Blueprint $table)
{
$table->integer('Id_TTa', true);
$table->string('Responsable_TCa')->nullable()->index('Responsable_TCa');
$table->dateTime('Date_TTa')->nullable()->default('0000-00-00 00:00:00');
$table->string('Ste_TCl')->nullable()->index('Ste_TCl');
$table->string('Ste_Utl')->nullable()->index('Ste_Utl');
$table->string('Adr_Liv_TCl')->nullable()->index('Adr_Liv_TCl');
$table->string('Contact_TCo')->nullable()->index('Contact_TCo');
$table->string('Collaborateur_TCa')->nullable()->index('Collaborateur_TCa');
$table->string('NDevis_TDv')->nullable()->index('NDevis_TDv');
$table->string('Devis_Type_TTa')->nullable();
$table->string('NCommande_TDv')->nullable()->index('NCommande_TDv');
$table->dateTime('Date_Debut_TTa')->nullable();
$table->dateTime('Date_Fin_TTa')->nullable();
$table->dateTime('Date_Demande_TTa')->nullable();
现在是家具桌
public function up()
{
Schema::create('T_Taches_Details_Fournitures', function(Blueprint $table)
{
$table->integer('Id_TTaDFo', true);
$table->integer('Id_TTa')->nullable()->index('Id_TTa');
$table->string('Class_TTaDFo')->nullable();
$table->string('Des_TTaDFo')->nullable();
$table->string('Ref_TTaDFo')->nullable();
$table->float('Qte_TTaDFo', 10, 0)->nullable()->default(0);
$table->float('PAHT_TTaDFo', 10, 0)->nullable()->default(0);
$table->float('Tx_Mge_TTaDFo', 10, 0)->nullable()->default(1.5);
$table->float('Vente_HT_TTaDFo', 10, 0)->nullable()->default(0);
});
}
希望大家能理解我的问题,感谢大家的收看。
已解决
我解决了这个问题,并在我的帖子之后在答案中解释了原因。
【问题讨论】:
标签: php laravel-5 eloquent has-many