laravel - 如何遍历未分配给当前票证的所有用户?
问题描述
我正在使用 Laravel eloquent,我想遍历所有尚未分配到工单的用户(还值得注意的是我的工单和用户之间的关系存储在我的数据透视表中),这样同一个用户就不能多次分配给同一张票。我的选择语句显然是错误的,但我还没有弄清楚如何去做。
票务控制器.php
public function info($slug){
//loop through all users
//$users = \App\User::all();
//trying to select all users not assigned to the ticket
$users = User::select('*')->join('tickets','ticket_id','id')-
>where('id','!=','ticket_id')->get();
return view ('admin.admin_info',['tickets' =>$tickets],
['users'=>$users]);
}
admin_info.blade.php 我的 foreach 循环
@foreach($users as $user)
<input type="checkbox" name="id" value=" {{$user->id}}">{{$user->name} <br>
@endforeach
User.php 模型
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password','admin',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
public function tickets(){
return$this->belongsToMany(Ticket::class,'ticket_user','id','ticket_id');
}
}
Ticket.php 模型
class Ticket extends Model
{
//
public function client(){
return $this->belongsTo(Client::class,'client_id');
}
public function users(){
return $this-
>belongsToMany(User::class,'ticket_user','ticket_id','id');
}
protected $primaryKey = 'ticket_id';
public $timestamps = false;
}
解决方案
你能试试这个:
$ticket = Ticket::findOrFail($id);
$selected_users = $ticket->users()->pluck('users.id')->toArray();
$users = User::whereNotIn('id', $selected_users)->get(['id', 'name']);
请注意,如果要传递给刀片文件的变量名称与控制器上的变量名称相同,则可以使用compact
如下函数:
return view ('admin.admin_info', compact('tickets', 'users'));
然后在您的Blade文件中:
请注意,您缺少一个结束括号字符。
@foreach($users as $user)
<input type="checkbox" name="id" value="{{$user->id}}">{{$user->name}}<br/>
@endforeach
推荐阅读
- java - 无法更新詹金斯
- c++ - 将 OpenCV Mat 转换为“位掩码”
- flutter - Flutter 应用程序音频播放器不播放 url src
- swift - 如何从模态呈现的视图控制器返回到选定的选项卡栏视图控制器?
- python - 如何使鼠标在给定时间范围内平滑过渡到新的相对位置
- groovy - 使用 binding.variables 创建的 SimpleTemplate 在转换为 String 时终止执行
- powershell - Powershell 将访客用户添加到启用邮件的安全组
- windows - 获取短期文件的内容
- r - 为什么“surv.svm”在 R 的“mlr3proba”包中显示错误?
- databricks - 所有笔记本单元格均已取消且没有错误