Я получил сводную таблицу, которая содержит дополнительные данные.Поэтому я создал пользовательскую сводную модель, как показано в документации для Laravel 5.6.
namespace App;
use Illuminate\Database\Eloquent\Relations\Pivot;
class PersonaTreeleave extends Pivot
{
public $timestamps = false;
protected $table = 'persona_treeleave';
protected $fillable = [
'FK', 'RoleTitle', 'Merkmale'
];
public function treeleave_id(){
return $this->hasOne('App\Treeleave');
}
public function persona_id(){
return $this->hasOne('App\Persona');
}
}
В файле контроллера я хочу присоединить пользователя к уже существующему «древовидному списку».
App\Treeleave::where('cid',$P['OE'])
->where( 'tree', $Baum->id)->first()
->Persons()->attach($DBUser, [
'FK' => $P['FK'],
'RoleTitle' => $P['RoleTitle'],
'Merkmale' => json_encode($P['Merkmale'])
]
);
Я получаю сообщение об ошибке типа "Class 'App \ PersonaTreeleave' not found".
Я не понимаю, почему это происходит.Это не поможет, если я добавлю «Использовать приложение \ PersonaTreeleave» в файле контроллера.
Если я сделаю это
dump(class_exists('App\Treeleave'));
dump(class_exists('App\PersonaTreeleave'));
, он выдаст такой вывод:
true
false
Кто-нибудь получил подсказку?
Классы "treeleave" и "персона"
namespace App;
use Illuminate\Database\Eloquent\Model;
class Treeleave extends Model
{
protected $table = 'treeleaves';
public $timestamps = false;
protected $fillable = ['parent','lft','rgt','ebene','oe_titel','tree','meta'];
public function Baum(){
return $this->belongsTo('App\Tree');
}
public function Persons(){
return $this->belongsToMany('App\Persona')
->withPivot('FK', 'RoleTitle', 'Merkmale')
->using('App\PersonaTreeleave')
;
}
}
namespace App;
use Illuminate\Database\Eloquent\Model;
class Persona extends Model
{
public $timestamps = false;
protected $attributes = [
'titel' => ''
];
protected $fillable = [
'nachname', 'vorname', 'titel', 'projekt', 'email', 'geschlecht', 'cid'
];
public function logins(){
// erwartet Relations-Tabelle "login_project" (alphabetische Reihenfolge der beteiligten Tabellen, Namen im Singular)
return $this->belongsToMany('App\Login');
}
public function OE(){
return $this->belongsToMany('App\Treeleave')
->withPivot('FK', 'RoleTitle', 'Merkmale')
->using('App\PersonaTreeleave')
;
}
public function setTitelAttribute($value)
{
$this->attributes['titel'] = (string)$value;
}
}