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

در وب سایت های کاربر محور بخشی وجود دارد که مدیران سایت می توانند لیست اطلاعات کاربران عضو شده را ببیند و اطلاعات کاربران را ویرایش یا حذف کند.
۱. کنترلر 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' => 'رمز عبور حداکثر ۱۲ کاراکتر باشد.',
];
}
}
کد بالا خطاها یا درخواست را فارسی سازی کردیم که هنگامی که کادرها پر نشوند و دکمه ثبت نام کلیک کند, اطلاعیه قرمز رنگ به زبان فارسی به نمایش در میاد.
عکس زیر:

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

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