Ich habe drei Tabellen nämlich:Laravel: Der Versuch, Eigentum der Nicht-Objektfehler zu erhalten
Site:
id|name|slug|location|description
Accounthead:
id|accountname|slug
Transaktion:
id|name|slug|site_id|accounthead_id|...
My Site-Modell wie folgt aussieht:
class Site extends Model
{
protected $fillable = [
'name',
'slug',
'location',
'description'
];
public function transactions()
{
return $this->hasMany('App\Transaction', 'site_id');
}
}
Mein AccountHead Modell wie folgt aussieht:
class AccountHead extends Model
{
protected $fillable = [
'slug',
'accountname'
];
public function transactions()
{
return $this->hasMany('App\Transaction','accounthead_id');
}
}
Und mein Transaktionsmodell wie folgt aussieht:
class Transaction extends Model
{
public function site()
{
return $this->belongsTo('App\Site','id');
}
public function accounthead()
{
return $this->belongsTo('App\AccountHead','id');
}
}
In Einer meiner Klinge möchte ich alle Transaktionen angezeigt werden und die zugehörigen Felder:
Meine Klinge Datei
@forelse($transactions as $key => $transaction)
<tr>
<td>{{++$key}}</td>
<td>{{$transaction->updated_at->format('M d Y')}}</td>
<td>{{str_limit($transaction->name, 47) }}</td>
<td>{{str_limit($transaction->accounthead->accountname,47)}}</td>
<td>{{str_limit($transaction->site->Name,47)}}</td>
<td>{{str_limit($transaction->amount,47)}}</td>
</tr>
@empty
<tr>
<td colspan="4" class="text-center">No Transactions available.</td>
</tr>
@endforelse
Es funktioniert gut, wenn man nicht Website/AccountHead ist verwendet für mehr als eine Transaktion. Einmal Standort/Accounthead ist für mehr als eine Transaktion Sein Wurf verwendet:
(2/2) ErrorException
Trying to get property of non-object
Fehle ich etwas wirklich dumm hier?
Ich denke, das ist das Hauptproblem, Wenn er 'site_id' Spalte für' Transaction' hat, dann hinterlässt er den zweiten und dritten Parameter, – OIIO
Nachdem ich einige Daten in der Transaktionstabelle beobachtet habe, bemerke ich die site_id und accoehead_id mit dem Wert '0' verursachten diesen Fehler. Ich erhalte diese Werte von {Form :: select}, das den Index der Website oder des Accountheads in der Liste angibt. –