2017-05-22 1 views
0

Ich versuche, eine Schaltfläche zu deaktivieren, wenn ich einen Benutzer in meiner Benutzertabelle registriert haben, aber mit der Methode, die ich benutze, inaktiviert nicht die Schaltfläche, die ich inaktiv sein möchte inaktiviert es für alle Register.Wenn Datensatz existiert Schaltfläche deaktiviert in Laravel 5.4

Das ist meine Benutzermigration:

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'); 
    }); 
} 

Und das ist mein Benutzermodell:

<?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%"); 
    } 
} 

Dieser Controller meines Index-Methode ist:

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); 
    } 

Und das ist meine Klinge Ansicht mit Knopf:

<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> 
+0

Ihr Zweck nicht der Fall ist scheint klar. Möchten Sie ein Formular für einen angemeldeten Benutzer deaktivieren? Und aktivieren Sie es nur für nicht registrierte/nicht angemeldete Benutzer? –

+0

Ich möchte die Schaltfläche deaktivieren, wenn ich einen dieser Datensätze in meiner Benutzertabelle habe. –

+0

Überprüfen Sie mit 'auth()' oder 'Auth', was Sie wollen, und vergleichen Sie es mit den Daten in der Benutzertabelle. – GabMic

Antwort

1
  1. Wert senden, mit Ihnen wieder erfolgreich return-Anweisung in Reglerfunktion
  2. und prüfen, ob dieser Wert Ihrer Ansicht nach besteht mit diesem

1

Im Klartext liest Ihre Logik, wenn es keine Benutzer gibt, zeigen Sie die Schaltfläche an, sonst deaktivieren Sie die Schaltfläche. Es scheint so, als hättest du users, deshalb scheitert das immer und das andere kommt ins Spiel.

Wenn Sie "confirmar" für eine einzelne Schaltfläche deaktivieren möchten, müssen Sie die ID des Benutzers irgendwo verwenden. So etwas wie

@if($employee->id == ...) 
// depending on your logic 
+0

Danke, aber es ist nicht aus der Tabelle der Mitarbeiter, die ich bestätigen möchte, ist es aus der Benutzer Tabelle, was passiert, ist, dass es einen Prozess gibt, der einen Benutzer von Mitarbeitern erstellt. Wenn dieser Benutzer erstellt wird, muss die Schaltfläche deaktiviert werden. –