ایجاد و نمایش لیست کاربران در لاراول ۶

در وب سایت های کاربر محور بخشی وجود دارد که مدیران سایت می توانند لیست اطلاعات کاربران عضو شده را ببیند و اطلاعات کاربران را ویرایش یا حذف کند.

۱. کنترلر User را ایجاد می کنیم:

php artisan make:controller UserController

کد زیر را به UserController (واقع در Http/Controller ) اضافه می کنیم:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\User;
use App\Http\Requests\UserRequest;
use App\Http\Controllers\Controller;

class UserController extends Controller
{
    public function index()
    {
        $users = User::all();
        return view('users.index', compact('users'));
    }

    public function create()
    {
        return view('users.create');
    }

    public function store(UserRequest $userRequest)
    {
        $userRequest->validate([
            'name' => 'required',
            'email' => 'required',
            'password' => 'required',
            'role' => 'required',
        ]);

        $users = new User;
        $users->name = $userRequest->name;
        $users->email = $userRequest->email;
        $users->password = $userRequest->password;
        $users->role = $userRequest->role;

        $users->save();

        return back()->withInfo('ثبت نام کاربر با موفقیت انجام شد.');
    }

    public function update(UserRequest $userRequest, $id)
    {
        $userRequest->validate([
            'name' => 'required',
            'email' => 'required',
            'password' => 'required',
            'role' => 'required',
        ]);

        if (!request()->has('password')) {
            unset($inputs['password']);
        }

        $users = User::find($id);
        $users->name = $userRequest->name;
        $users->email = $userRequest->email;
        $users->role = $userRequest->role;

        $users->save();

        return back()->withInfo('کاربر مورد نظر با موفقیت ویرایش شد.');
    }

    public function edit($id)
    {
        $users = User::find($id);
        return view('users.edit', compact('users'))->withInfo('کاربر مورد نظر با موفقیت ویرایش شد.');
    }

    public function destroy($id)
    {
        $users = User::where('id',$id)->delete();
        return back()->withInfo('کاربر مورد نظر با موفقیت حذف شد.');
    }
}

۲. مسیرها ( واقع در routes/web.php ) را ایجاد می کنیم:

Route::group(['prefix' => 'admin', 'middleware' => ['auth' => 'admin']], function () {
    Route::get('/users', 'UserController@index')->name('admin.users');
    Route::get('/users/create', 'UserController@create')->name('admin.users.create');
    Route::post('/users/create', 'UserController@store')->name('admin.users.store');
    Route::get('/users/edit/{id}', 'UserController@edit')->name('admin.users.edit');
    Route::post('/users/edit/{id}', 'UserController@update')->name('admin.users.update');
    Route::get('users/destroy/{id}', 'UserController@destroy')->name('users.destroy');
});

۳. فایل های زیر را در پوشه users ایجاد می کنیم:

۴. کدهای زیر را در فایل های index, create, edit اضافه می کنیم.

index.blade.php :

@extends('layouts\admin')

@section('content')
<div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pb-2 mb-3 border-bottom">
    <h1 class="h2">لیست کاربران</h1>
</div>
@include('layouts.info')
<div class="table-responsive">
  <table class="table table-striped ">
    <thead>
      <tr>
        <th>شناسه</th>
        <th>نام کاربری</th>
        <th>ایمیل</th>
        <th>دسترسی</th>
        <th>عملیات</th>
      </tr>
    </thead>
    <tbody>
      @foreach ($users as $user)
      <tr>
          <td>{{ $user->id }}</td>
          <td>{{ $user->name }}</td>
          <td>{{ $user->email }}</td>
          <td>{{ $user->role }}</td>
          <td>
            <a href="{{ route('admin.users.edit', $user->id) }}" class="btn btn-warning btn-sm">ویرایش</a>
            <form action="{{ route('users.destroy', $user->id) }}" method="get">
              @csrf
              @method('DELETE')
              <input type="submit" value="حذف" class="btn btn-danger btn-sm">
            </form>
          </td>
      </tr>
      @endforeach
    </tbody>
  </table>
</div>
@endsection

create.blade.php :

@extends('layouts\admin')

@section('content')
<div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pb-2 mb-3 border-bottom">
    <h1 class="h2">افزودن کاربر</h1>
</div>
@include('layouts.info')
<form action="{{ route('admin.users.store') }}" method="POST">
  @csrf
    <div class="form-group">
        <label for="name">نام کاربری</label>
        <input type="text" name="name" class="form-control" id="name">
    </div>
    <div class="form-group">
      <label for="email">ایمیل</label>
      <input type="email" name="email" class="form-control" id="email">
    </div>
    <div class="form-group">
        <label for="password">رمز عبور</label>
        <input type="password" name="password" class="form-control" id="password">
    </div>
    <div class="form-group">
      <label for="role">نحوه دسترسی</label>
      <select class="form-control" name="role" id="role">
        <option value="1" {{ isset($users) && $users->role == 1 ? 'selected': '' }}>مدیر</option>
        <option value="2" {{ isset($users) && $users->role == 2 ? 'selected': '' }}>کاربر</option>
      </select>
    </div>
    <button type="submit" class="btn btn-primary">ثبت نام</button>
  </form>
@endsection

edit.blade.php :

@extends('layouts\admin')

@section('content')
<div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pb-2 mb-3 border-bottom">
    <h1 class="h2">ویرایش کاربر</h1>
</div>
@include('layouts.info')
<form action="{{ route('admin.users.update', $users->id) }}" method="post" enctype="multipart/form-data">
  @csrf
    <div class="form-group">
        <label for="name">نام کاربری</label>
        <input type="text" name="name" class="form-control" id="name" value="{{ $users->name }}">
    </div>
    <div class="form-group">
      <label for="exampleFormControlInput1">ایمیل</label>
      <input type="email" name="email" class="form-control" id="email" value="{{ $users->email }}">
    </div>
    <div class="form-group">
        <label for="password">رمز عبور</label>
        <input type="password" name="password" class="form-control" id="password">
    </div>
    <div class="form-group">
      <label for="role">نحوه دسترسی</label>
      <select class="form-control" id="role" name="role">
        <option value="1" {{ isset($users) && $users->role == 1 ? 'selected': ''  }}>مدیر</option>
        <option value="2" {{ isset($users) && $users->role == 2 ? 'selected': ''  }}>کاربر</option>
      </select>
    </div>
    <button type="submit" class="btn btn-primary">به روز رسانی</button>
  </form>
@endsection

۵. فایل UserRequest.php (همراه با پوشه Requests ) واقع در Http ایجاد می کنیم.

دستور زیر :

php artisan make:request UserRequest

کد زیر را در فایل UserRequest.php اضافه می کنیم:

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class UserRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'name' => 'required',
            'email' => 'required|email',
            'password' => 'required|min:6|max:12',
        ];
    }

    public function messages()
    {
        return[
            'name.required' => 'لطفا نام کاربری کامل را وارد کنید.',
            'email.required' => 'لطفا ایمیل معتبر را وارد کنید.',
            'email.email' => 'ایمیل وارد شده معتبر نمی باشد.',
            'password.required' => 'لطفا رمز عبور وارد نمایید.',
            'password.min' => 'رمز عبور حداقل ۶ کاراکتر نیاز دارد.',
            'password.max' => 'رمز عبور حداکثر ۱۲ کاراکتر باشد.',
        ];
    }
}

کد بالا خطاها یا درخواست را فارسی سازی کردیم که هنگامی که کادرها پر نشوند و دکمه ثبت نام کلیک کند, اطلاعیه قرمز رنگ به زبان فارسی به نمایش در میاد.

عکس زیر:

تمام شد.

پیش نمایش لیست کاربران عضو شده:

2 دیدگاه برای “ایجاد و نمایش لیست کاربران در لاراول ۶”

  1. hamed گفت:

    با سلام
    http://cytus.ir/tag/road-the-silk-road/
    خرید پنل پیامک لینک کردین در سمت راست
    از کدام سایت این نوع بک لینک رو خریده

    1. سایتوس گفت:

      درود…
      سایت یونی پلیس

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *