Ich habe eine benutzerdefinierte benutzerdefinierte Befehl erstellt und in der Handle() -Methode muss ich ein paar Informationen über die Benutzer erhalten.Kann nicht Modellbeziehung in Handwerker benutzerdefinierte Befehl Laravel 5.4
Wenn ich laufe:
handle() {
$users = User::all();
foreach($users as $user) {
$this->line($user->name);
}
}
es funktioniert, aber ich brauche so etwas wie:
handle() {
$users = User::all();
foreach($users as $user) {
$this->line($user->summoner->summoner_id);
}
}
und ich bekomme Versuch Eigenschaft Nicht-Objekt zu erhalten.
Wenn ich den gleichen Code oben in einem Controller ausführen, funktioniert es gut.
Hat jemand eine Idee?
User-Modell:
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
protected $fillable = [
'name', 'email', 'password',
];
protected $hidden = [
'password', 'remember_token',
];
public function summoner() {
return $this->hasOne('App\Summoner');
}
Summoner Modell:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Summoner extends Model
{
protected $table = 'summoners';
public $timestamps = true;
public function user() {
return $this->belongsTo('App\User');
}
}
Zeigen Sie Ihre Modelle und Beziehungen. – aynber
Ok, oben bearbeitet –
Versuchen Sie, '$ users' in Protokollen auszugeben. Sehen Sie, was genau Sie in Variable bekommen haben. Dies kann auch passieren, wenn ein Benutzer keine Telefonnummer hat. –