如果 laravel 5.4 中存在记录禁用按钮
If record exist disabled button in laravel 5.4
如果我有一个用户在我的用户 table 中注册,我正在尝试禁用一个按钮,但是我使用的方法并没有使我想要处于非活动状态的按钮停用,它正在停用它到所有寄存器。
这是我的用户迁移:
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->increments('id');
$table->integer('id_employee')->unsigned();
$table->string('username')->unique();//Cedula
$table->string('name')->nullable();
$table->string('password', 60)->nullable();
$table->string('email', 60)->nullable();
$table->rememberToken();
$table->timestamps();
$table->foreign('id_employee')->references('id')->on('employees')
->onUpdate('cascade')->onDelete('cascade');
});
}
这是我的用户模型:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Employee extends Model
{
protected $table = 'employees';
protected $fillable = ['doc_number', 'user_code', 'name', 'last_name', 'settlement', 'address', 'city' , 'zip_code', 'email', 'phone', 'position', 'departments_id', 'hire_date'];
protected $guarded = ['id'];
public function departments()
{
return $this->belongsTo('App\Department');
}
public function user()
{
return $this->hasOne('App\User');
}
//Query para buscador
public function scopeName($query, $name)
{
$query->leftJoin('departments','employees.departments_id','=','departments.id')
->select('employees.*','departments.id as deptID','departments.name as department')
->where('employees.name','like',"%$name%")
->orWhere('employees.last_name','like',"%$name%")
->orWhere('employees.position','like',"%$name%")
->orWhere('employees.email','like',"%$name%")
->orWhere('employees.doc_number','like',"%$name%")
->orWhere('departments.name','like',"%$name%");
}
}
这是我的索引方法控制器:
public function index(Request $request)
{
$employees = Employee::name($request->get('criteria'))->orderBy('name','asc')->paginate(6);
$departments = Department::orderBy('id', 'desc')->pluck('name', 'id');
$users = User::orderBy('id', 'desc')->pluck('username', 'id');
return view('employees.index', compact('employees', 'departments', 'users'))
->with('i', ($request->input('page', 1) - 1) * 6);
}
这是我的 blade 按钮视图:
<td>
<div class="btn-group">
@if(count($users) === 0)
<a href="{{ URL::route('padron.create', $employee->id) }}" type="submit" class="btn btn-success btn-sm" data-toggle="tooltip" rel="tooltip" data-placement="top" title="Confirmar votante">Confirmar</a>
@else
<a type="submit" class="btn btn-success btn-sm" data-toggle="tooltip" rel="tooltip" data-placement="top" disabled="disabled" title="Confirmar votante">Confirmar</a>
@endif
</div>
</td>
用简单的英语来说,您的逻辑是,如果没有用户,则显示该按钮,否则禁用该按钮。看起来你有 users
,因此 if 总是失败,而 else 开始发挥作用。
如果您想禁用单个按钮的 'confirmar',您将不得不在某处使用用户 ID。像
@if($employee->id == ...)
// depending on your logic
- 在控制器函数中 return 声明成功后返回一个值
- 并使用此
检查您的视图中是否存在该值
如果我有一个用户在我的用户 table 中注册,我正在尝试禁用一个按钮,但是我使用的方法并没有使我想要处于非活动状态的按钮停用,它正在停用它到所有寄存器。
这是我的用户迁移:
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->increments('id');
$table->integer('id_employee')->unsigned();
$table->string('username')->unique();//Cedula
$table->string('name')->nullable();
$table->string('password', 60)->nullable();
$table->string('email', 60)->nullable();
$table->rememberToken();
$table->timestamps();
$table->foreign('id_employee')->references('id')->on('employees')
->onUpdate('cascade')->onDelete('cascade');
});
}
这是我的用户模型:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Employee extends Model
{
protected $table = 'employees';
protected $fillable = ['doc_number', 'user_code', 'name', 'last_name', 'settlement', 'address', 'city' , 'zip_code', 'email', 'phone', 'position', 'departments_id', 'hire_date'];
protected $guarded = ['id'];
public function departments()
{
return $this->belongsTo('App\Department');
}
public function user()
{
return $this->hasOne('App\User');
}
//Query para buscador
public function scopeName($query, $name)
{
$query->leftJoin('departments','employees.departments_id','=','departments.id')
->select('employees.*','departments.id as deptID','departments.name as department')
->where('employees.name','like',"%$name%")
->orWhere('employees.last_name','like',"%$name%")
->orWhere('employees.position','like',"%$name%")
->orWhere('employees.email','like',"%$name%")
->orWhere('employees.doc_number','like',"%$name%")
->orWhere('departments.name','like',"%$name%");
}
}
这是我的索引方法控制器:
public function index(Request $request)
{
$employees = Employee::name($request->get('criteria'))->orderBy('name','asc')->paginate(6);
$departments = Department::orderBy('id', 'desc')->pluck('name', 'id');
$users = User::orderBy('id', 'desc')->pluck('username', 'id');
return view('employees.index', compact('employees', 'departments', 'users'))
->with('i', ($request->input('page', 1) - 1) * 6);
}
这是我的 blade 按钮视图:
<td>
<div class="btn-group">
@if(count($users) === 0)
<a href="{{ URL::route('padron.create', $employee->id) }}" type="submit" class="btn btn-success btn-sm" data-toggle="tooltip" rel="tooltip" data-placement="top" title="Confirmar votante">Confirmar</a>
@else
<a type="submit" class="btn btn-success btn-sm" data-toggle="tooltip" rel="tooltip" data-placement="top" disabled="disabled" title="Confirmar votante">Confirmar</a>
@endif
</div>
</td>
用简单的英语来说,您的逻辑是,如果没有用户,则显示该按钮,否则禁用该按钮。看起来你有 users
,因此 if 总是失败,而 else 开始发挥作用。
如果您想禁用单个按钮的 'confirmar',您将不得不在某处使用用户 ID。像
@if($employee->id == ...)
// depending on your logic
- 在控制器函数中 return 声明成功后返回一个值
- 并使用此 检查您的视图中是否存在该值