mardi 17 mars 2020

Laravel Showing all users and check if belong to Bans table

Hi im working on admin dashboard and i want to show all users and check if the user blocked get information about the ban information im using cybercog/laravel-ban to ban users Laravel 5.8

User model :

namespace App;
use Illuminate\Notifications\Notifiable;
use Cog\Contracts\Ban\Bannable as BannableContract;
use Cog\Laravel\Ban\Traits\Bannable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;

use Illuminate\Support\Facades\Auth;
use Illuminate\Auth\Events\Verified;
class User extends Authenticatable implements MustVerifyEmail,BannableContract
{
use Notifiable;
use Bannable;


protected $fillable = [
    'name', 'email', 'password',
    'last_login_at',
    'last_login_userganet',
    'avatar','uid'
];


/**
 * The attributes that should be hidden for arrays.
 *
 * @var array
 */
protected $hidden = [
    'password', 'remember_token',
];

/**
 * The attributes that should be cast to native types.
 *
 * @var array
 */
protected $casts = [
    'email_verified_at' => 'datetime',
];

public function UserBan()
{
    return $this->hasOne('App\Ban','bannable_id');
}

Ban Model :

namespace App;

use Illuminate\Database\Eloquent\Model;

class Ban extends Model
{



protected $fillable = [
    'id','expired_at','bannable_type'
];
protected $casts = [
    'bannable_type'
];
public function Users()
{
    return $this->belongsTo('App\User');
}

}

User Controller :


    namespace App\Http\Controllers;

    use App\User;
    use App\Ban;
    use App\Http\Requests\UserRequest;
    use Illuminate\Http\Request;
    use Illuminate\Support\Str;
    use Illuminate\Support\Facades\Auth;
    use Illuminate\Support\Facades\Hash;
    use Cog\Contracts\Ban\Bannable;
    class UserController extends Controller
    {
        /**
         * Display a listing of the users
         *
         * @param  \App\User  $model
         * @return \Illuminate\View\View
         */
        public function index(User $model,Ban $banModel)
        {


            return view('users.index', ['users' => $model->paginate(15),'bans'=>$banModel->paginate(15)]);
        }

Users schema :

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->timestamp('last_login')->nullable();
            $table->string('last_login_provider')->nullable();
            $table->string('last_login_useragent')->nullable();
            $table->string('last_login_ip')->nullable();
            $table->string('uid')->nullable();
            $table->string('password');
            $table->string('avatar')->nullable();
            $table->string('facebook_id')->unique()->nullable();
            $table->string('google_id')->unique()->nullable();
            $table->string('twitter_id')->unique()->nullable();
            $table->string('instagram_id')->unique()->nullable();
            $table->enum('user_type',['member','admin'])->default('member');
            $table->boolean('blocked')->default(false);
            $table->timestamp('banned_at')->nullable();
            $table->rememberToken();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('users');
    }
}

I could not found the bans schema but this is the table of bans :

Bans table



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire