【问题标题】:Laravel 5 Eloquent-BelongsTo hasMany give me empty objectLaravel 5 Eloquent-BelongsTo hasMany 给我空对象
【发布时间】: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


    【解决方案1】:

    我找到了解决方案。事实上,在我的模型中,我删除了第二个和第三个参数。

    return $this->belongsTo('App\BonIntervention', 'Id_TTa', 'Id_TTa');
    return $this->hasMany('App\BonInterventionFournitures', 'Id_TTa', 'Id_TTaDFo');
    

    我只是在我的return hasMany中添加第二个参数,就像这样

    return $this->hasMany('App\BonInterventionFournitures', 'Id_TTa');
    return $this->belongsTo('App\BonIntervention');
    

    当我这样做时,现在有了工匠修补匠

    $comments = App\BonIntervention::find(2003);
    $comment = $comments->bonInterventionFournitures;
    

    我找到了正确的答案。

    【讨论】:

      猜你喜欢
      • 2015-12-22
      • 2022-01-07
      • 1970-01-01
      • 2020-07-04
      • 2013-05-20
      • 2015-08-26
      • 2018-04-01
      • 2021-11-01
      • 1970-01-01
      相关资源
      最近更新 更多