Laravel 试图获得财产';日期';非对象的定义?

Laravel 试图获得财产';日期';非对象的定义?,laravel,Laravel,我有两个表POINTAGES,它们之间的Employee是一个关系,它有许多和belongs to,我想显示表POINTAGES from SalarieController在尝试获取非object?的属性“datep”时出错 consuse.blade.php <table id="example" class="table table-striped table-bordered"> <thead> <tr&g

我有两个表POINTAGES,它们之间的Employee是一个关系,它有许多和belongs to,我想显示表POINTAGES from SalarieController在尝试获取非object?的属性“datep”时出错

consuse.blade.php

<table id="example" class="table table-striped table-bordered">
        <thead>
                  <tr>
                    <th>date</th>
                    <th>chantier</th>
                    <th>ouvrage</th>
                    <th>nombre jour</th>
                    <th>solde</th>
                    <th></th>
                  </tr>
                </thead>
                <tbody>
                  @foreach($pointages as $pointage)
                  <tr>
                    <td>{{ $pointage->datep }}</td>
                    <td>{{ $pointage->chantier }}</td>
                    <td>{{ $pointage->ouvrage }}</td>
                    <td>{{ $pointage->nbrj }}</td>
                    <td>{{ $pointage->solde }}</td>
                    <td></td>

                  </tr>
                  @endforeach
                </tbody>
</table>
路线

Route::get('consulter', 'SalarieController@consulter');
/**
     * 
     *
     * @var array
     */
    protected $fillable = [
        'salarie_id', 'datep', 'solde', 'nbrj' , 'ouvrage' , 'chantier' , 'prime' ,
    ];
    public function salarie(){
        return $this->belongsTo('App\Salarie');
    }
模范工薪阶层

public function pointages(){
        return $this->hasMany('App\Pointage');
    }
模型点年龄

Route::get('consulter', 'SalarieController@consulter');
/**
     * 
     *
     * @var array
     */
    protected $fillable = [
        'salarie_id', 'datep', 'solde', 'nbrj' , 'ouvrage' , 'chantier' , 'prime' ,
    ];
    public function salarie(){
        return $this->belongsTo('App\Salarie');
    }
移民工薪id

public function up()
    {
        Schema::table('pointages', function (Blueprint $table) {
            $table->integer('salarie_id')->unsigned()->after('id');
            $table->foreign('salarie_id')->references('id')->on('salaries');  
        });
    }
方法
pulk()
将返回一个从您的id中提取到datep值的数组。因此,您无法通过
$pointage->datep
访问该值。同样,你也无法到达其他属性,如chantier、ouvrage。。。使用
pluck()
时。只需去掉pulk方法,迭代
all()
给出的集合,并从模型中访问值。
您可以在使用模型时执行
Pointage:all()
DB::table('pointages')->get()

出现此问题的原因是您使用了
all()
,在集合上使用时,它将返回一个数组(这就是为什么错误显示为
非对象

您将面临的下一个问题是,您的结果中不会有
chantier
ouvrage
nbrj
solde
,因为您使用的是
Pulk
,它只会从数据库中的一行返回一个值
(-向下滚动至标题,检索列值列表

要解决这两个问题,只需将
->pull(“datep”,“id”)->all()
更改为
get()

这意味着您的控制器方法将类似于:

public function consulter()
{
  $salaries = Salarie::with('pointages')->get();
  $pointages = DB::table('pointages')->get();

  return view('salarie.consulter', compact('salaries','pointages'));
}
或者,如果要使用Eloquent,可以将
$pointages
行更改为:

$pointages = Pointage::all(); 

(不要忘记将模型导入到控制器中)。

这是因为您使用了
->all()
<集合上的code>all()
将返回一个数组。此外,您正在提取
datep
值,因此
$pointage
将是
datep
值。您将无法访问chantier、ouvrage、nbrj或solde,因为您已使用Pulk.thx作为您的答案,但如何解决此错误?请摆脱Pulk方法,再试一次。我不知道如何写,您可以写salarieController plzi不知道如何写,您可以写salarieController Plz选择代码
->Pulk(“日期”,“id”)
在您的代码编辑器中,按delete按钮…@NajibMarzouk刚刚删除->从您的SalarieController:)@TimLewis他给我另一个错误调用未定义的方法Lightning\Database\Query\Builder::all()将
->all()
更改为
->get()