我有一个这样的控制器:
public function store(Request $request)
{
$validated = $request->validate([
"ref_ticket"=>['required','min:3'],
]);
$verification=Affaire::where('reference', '=', $request->ref_ticket);
//dd($verification->count());
if($verification->count() >0){
// exite
return back()->with("error","Ce ticket ". $request->ref_ticket ." existe déjà veuillez le changer.");
}else{
// existe pas
$tickets = new Ticket();
$tickets->ref = $request->ref_ticket;
$tickets->type_demande = $request->demande;
$tickets->categorisation = $request->categorie;
$tickets->severite = $request->severite_ticket;
$tickets->sujet = $request->sujet_ticket;
$tickets->fichier_joint = $request->fichier_joint_ticket;
$tickets->message = $request->message_ticket;
$tickets->progression = $request->progression_ticket;
$tickets->date_cloture = $request->date_cloture_ticket;
$tickets->etat = 'Assigné';
$tickets->affaire_id = $request->affaire_ticket;
$tickets->tier_id = $request->tier_ticket;
$tickets->user_id = $request->user_ticket;
$tickets->user_id = Auth::id();
$tickets->save();
return back()->with("success","Ticket ". $request->ref_ticket ." enrégistré avec succès.");
}
}
我的票表:
public function up()
{
Schema::create('tickets', function (Blueprint $table) {
$table->id();
$table->string('ref')->nullable();
$table->string('type_demande')->nullable();
$table->string('categorisation')->nullable();
$table->string('severite')->nullable();
$table->string('sujet')->nullable();
$table->string('fichier_joint')->nullable();
$table->string('message')->nullable();
$table->string('progression')->nullable();
$table->string('date_cloture')->nullable();
$table->string('etat')->nullable();
$table->string('affaire_id')->nullable();
$table->string('tier_id')->nullable();
$table->string('user_id')->nullable();
$table->timestamps();
我有一个模型:User
public function tickets(){
return $this->hasMany(Ticket::class);
}
我还有另一个型号:Ticket
public function user(){
return $this->belongsTo(User::class,"user_id");
}
public function createdBy()
{
return $this->belongsTo(User::class, 'user_id');
}
public function tier()
{
return $this->belongsTo(Tier::class, 'tier_id');
}
public function assignedTo()
{
return $this->belongsTo(User::class, 'user_id');
}
和我的刀片视图
@foreach ($tickets as $ticket)
<tr>
<th scope="row"><a href="/TICKETS/detail-ticket.html" class="link">{{ $ticket->ref}}</a></th>
<td>{{$ticket->createdBy->name}}</td>
<td>{{ $ticket->sujet}}</td>
<td>{{ $ticket->type_demande}}</td>
<td>{{ $ticket->severite}}</td>
<td>{{$ticket->tier->nom_prenoms}}</td>
<td>{{ $ticket->created_at}}</td>
<td>{{$ticket->assignedTo->name}}</td>
</tr>
@endforeach
我需要检索通过此
{{$ticket->createdBy->name}}
提交票证创建表单的用户以及因此分配票证的人员{{$ticket->assignedTo->name}}
。但它向我显示了双方相同的用户。
有什么想法吗?
您在 3 种不同的关系中使用相同的
user_id
(user()
、createdBy()
和 assignedTo()
)。它应该分开,这样你就知道你在每个字段上做什么。
例如:为
创建一个新字段。正常情况下assigned user
您可以看到谁创建了票证。user_id
在迁移中,创建一个新的。
Schema::table('tickets', function (Blueprint $table) {
$table->unsignedBigInteger('assigned_user_id')->nullable()->after('user_id');
$table->foreign('assigned_user_id')->references('id')->on('users');
});
并在
Ticket
模型中(如果没有,则创建一个新模型)
public function assignedTo()
{
return $this->belongsTo(User::class, 'assigned_user_id');
}
在您的更新/存储中,如果存在值,请不要忘记添加密钥。
$tickets->assigned_user_id = $request->assigned_user_id;
为此,您必须添加新的输入来添加受让人。
在刀片视图中,您现在可以使用
{{$ticket->createdBy->name}}
获取创建票证的用户的名称,并使用 {{$ticket->assignedTo->name}}
获取分配票证的用户的名称。