Tinker cho phép bạn tương tác với toàn bộ ứng dụng Laravel của mình trên dòng lệnh, bao gồm Eloquent ORM, công việc, sự kiện, v.v. Để vào môi trường Tinker, hãy chạy lệnh tinker Artisan php artisan tinker or php artisan ti
bằng cách sử dụng dòng lệnh tinker, chúng ta có thể tạo người dùng mới hoặc chèn dữ liệu mới vào cơ sở dữ liệu chạy php artisan ti hoặc bạn có thể sử dụng các phương pháp khác nhau để lưu trữ dữ liệu mới, hãy xem ________số 8_______ Chúng tôi đã tạo người dùng bảng quản trị, vai trò và quản lý quyền. Trong phần này, chúng tôi sẽ tạo một trang cập nhật tài khoản cho người dùng bảng quản trị Trang cập nhật tài khoảnCác bước sau đây có liên quan để tạo trang cập nhật tài khoản Bảng điều khiển quản trị Laravel - 1. Thêm tuyến đường
- 2. Thêm một chức năng trên bộ điều khiển
- 3. Tạo chế độ xem
- 4. Lưu thông tin tài khoản
- 5. Lưu mật khẩu
- 6. Thêm liên kết vào điều hướng
1. Thêm tuyến đườngChúng tôi sẽ tạo một trang mới để cập nhật tài khoản. Thêm các tuyến bên dưới vào nhóm quản trị của chúng tôi tuyến đường/quản trị viên. php Route::get('edit-account-info', 'UserController@accountInfo')->name('admin.account.info'); Route::post('edit-account-info', 'UserController@accountInfoStore')->name('admin.account.info.store'); Route::post('change-password', 'UserController@changePasswordStore')->name('admin.account.password.store'); Lộ trình đầu tiên là “chỉnh sửa tài khoản-thông tin” cho biểu mẫu cập nhật tài khoản. Hai cách khác để lưu thông tin tài khoản và mật khẩu 2. Thêm một chức năng trên bộ điều khiểnThêm chức năng dưới đây vào UserController ứng dụng/Http/Bộ điều khiển/Quản trị viên/Bộ điều khiển người dùng. php public function accountInfo() { $user = \Auth::user(); return view('admin.user.account_info', compact('user')); } 3. Tạo chế độ xemTạo account_info. lưỡi. php bên trong thư mục resource/views/admin/user/. Trong chế độ xem, chúng tôi đã thêm hai biểu mẫu. Một để cập nhật thông tin tài khoản cơ bản (tên & email). Một cách khác là cập nhật mật khẩu tài khoản tài nguyên/lượt xem/quản trị viên/người dùng/account_info. lưỡi. php <x-app-layout> <x-slot name="header"> <h2 class="font-semibold text-xl text-gray-800 leading-tight"> {{ __('My Account') }} </h2> </x-slot> <div class="py-12"> <div class="max-w-7xl mx-auto sm:px-6 lg:px-8"> <div class="bg-white overflow-hidden shadow-sm sm:rounded-lg"> <div class="px-6"> <h1 class="inline-block text-2xl sm:text-3xl font-extrabold text-slate-900 tracking-tight dark:text-slate-200 py-4 block sm:inline-block flex">{{ __('Account Info') }}</h1> @if ($errors->account->any()) <ul class="mt-3 list-none list-inside text-sm text-red-400"> @foreach ($errors->account->all() as $error) <li>{{ $error }}</li> @endforeach </ul> @endif @if(session()->has('account_message')) <div class="mb-8 text-green-400 font-bold"> {{ session()->get('account_message') }} </div> @endif </div> <div class="w-full px-6 py-4 bg-white overflow-hidden"> <form method="POST" action="{{ route('admin.account.info.store') }}"> @csrf <div class="py-2"> <label for="name" class="block font-medium text-sm text-gray-700{{$errors->account->has('name') ? ' text-red-400' : ''}}">{{ __('Name') }}</label> <input id="name" class="rounded-md shadow-sm border-gray-300 focus:border-indigo-300 focus:ring focus:ring-indigo-200 focus:ring-opacity-50 block mt-1 w-full{{$errors->account->has('name') ? ' border-red-400' : ''}}" type="text" name="name" value="{{ old('name', $user->name) }}" /> </div> <div class="py-2"> <label for="email" class="block font-medium text-sm text-gray-700{{$errors->account->has('email') ? ' text-red-400' : ''}}">{{ __('Email') }}</label> <input id="email" class="rounded-md shadow-sm border-gray-300 focus:border-indigo-300 focus:ring focus:ring-indigo-200 focus:ring-opacity-50 block mt-1 w-full{{$errors->account->has('email') ? ' border-red-400' : ''}}" type="email" name="email" value="{{ old('email', $user->email) }}" /> </div> <div class="flex justify-end mt-4"> <button type="submit" class="inline-flex items-center px-4 py-2 bg-gray-800 border border-transparent rounded-md font-semibold text-xs text-white uppercase tracking-widest hover:bg-gray-700 active:bg-gray-900 focus:outline-none focus:border-gray-900 focus:ring ring-gray-300 disabled:opacity-25 transition ease-in-out duration-150"> {{ __('Update') }} </button> </div> </form> </div> </div> </div> </div> <div class="py-3"> <div class="max-w-7xl mx-auto sm:px-6 lg:px-8"> <div class="bg-white overflow-hidden shadow-sm sm:rounded-lg"> <div class="px-6"> <h1 class="inline-block text-2xl sm:text-3xl font-extrabold text-slate-900 tracking-tight dark:text-slate-200 py-4 block sm:inline-block flex">{{ __('Change Password') }}</h1> @if ($errors->password->any()) <ul class="mt-3 list-none list-inside text-sm text-red-400"> @foreach ($errors->password->all() as $error) <li>{{ $error }}</li> @endforeach </ul> @endif @if(session()->has('password_message')) <div class="mb-8 text-green-400 font-bold"> {{ session()->get('password_message') }} </div> @endif </div> <div class="w-full px-6 py-4 bg-white overflow-hidden"> <form method="POST" action="{{ route('admin.account.password.store') }}"> @csrf <div class="py-2"> <label for="old_password" class="block font-medium text-sm text-gray-700{{$errors->password->has('old_password') ? ' text-red-400' : ''}}">{{ __('Old Password') }}</label> <input id="old_password" class="rounded-md shadow-sm border-gray-300 focus:border-indigo-300 focus:ring focus:ring-indigo-200 focus:ring-opacity-50 block mt-1 w-full{{$errors->password->has('old_password') ? ' border-red-400' : ''}}" type="password" name="old_password" /> </div> <div class="py-2"> <label for="new_password" class="block font-medium text-sm text-gray-700{{$errors->password->has('new_password') ? ' text-red-400' : ''}}">{{ __('New Password') }}</label> <input id="new_password" class="rounded-md shadow-sm border-gray-300 focus:border-indigo-300 focus:ring focus:ring-indigo-200 focus:ring-opacity-50 block mt-1 w-full{{$errors->password->has('new_password') ? ' border-red-400' : ''}}" type="password" name="new_password" /> </div> <div class="py-2"> <label for="confirm_password" class="block font-medium text-sm text-gray-700{{$errors->password->has('confirm_password') ? ' text-red-400' : ''}}">{{ __('Confirm password') }}</label> <input id="confirm_password" class="rounded-md shadow-sm border-gray-300 focus:border-indigo-300 focus:ring focus:ring-indigo-200 focus:ring-opacity-50 block mt-1 w-full{{$errors->password->has('confirm_password') ? ' border-red-400' : ''}}" type="password" name="confirm_password" /> </div> <div class="flex justify-end mt-4"> <button type='submit' class='inline-flex items-center px-4 py-2 bg-gray-800 border border-transparent rounded-md font-semibold text-xs text-white uppercase tracking-widest hover:bg-gray-700 active:bg-gray-900 focus:outline-none focus:border-gray-900 focus:ring ring-gray-300 disabled:opacity-25 transition ease-in-out duration-150'> {{ __('Change Password') }} </button> </div> </form> </div> </div> </div> </div> </x-app-layout> Mẫu cập nhật tài khoản4. Lưu thông tin tài khoảnTạo hàm accountInfoStore để lưu trữ chi tiết tài khoản người dùng ứng dụng/Http/Bộ điều khiển/Quản trị viên/Bộ điều khiển người dùng. php public function accountInfoStore(Request $request) { $request->validateWithBag('account', [ 'name' => ['required', 'string', 'max:255'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users,email,'.\Auth::user()->id], ]); $user = \Auth::user()->update($request->except(['_token'])); if ($user) { $message = "Account updated successfully."; } else { $message = "Error while saving. Please try again."; } return redirect()->route('admin.account.info')->with('account_message', $message); } Chúng tôi đã sử dụng validateWithBag để phân tách thông báo lỗi khi xem. Laravel được gọi là. Bởi vì chúng tôi đã sử dụng hai biểu mẫu trên cùng một trang 5. Lưu mật khẩuHàm changePasswordStore a được sử dụng để lưu mật khẩu đã thay đổi của người dùng. Đã thêm xác thực $validator->after để xác thực mật khẩu hiện tại sau các quy tắc xác thực ứng dụng/Http/Bộ điều khiển/Quản trị viên/Bộ điều khiển người dùng. php public function changePasswordStore(Request $request) { $validator = \Validator::make($request->all(), [ 'old_password' => ['required'], 'new_password' => ['required', Rules\Password::defaults()], 'confirm_password' => ['required', 'same:new_password', Rules\Password::defaults()], ]); $validator->after(function ($validator) use ($request) { if ($validator->failed()) return; if (! Hash::check($request->input('old_password'), \Auth::user()->password)) { $validator->errors()->add( 'old_password', 'Old password is incorrect.' ); } }); $validator->validateWithBag('password'); $user = \Auth::user()->update([ 'password' => Hash::make($request->input('new_password')), ]); if ($user) { $message = "Password updated successfully."; } else { $message = "Error while saving. Please try again."; } return redirect()->route('admin.account.info')->with('password_message', $message); } 6. Thêm liên kết vào điều hướngBước cuối cùng thêm liên kết Tài khoản của tôi trên public function accountInfo() { $user = \Auth::user(); return view('admin.user.account_info', compact('user')); } 0tài nguyên/lượt xem/bố cục/điều hướng. lưỡi. php <x-slot name="content"> <!-- Authentication --> + <x-dropdown-link :href="route('admin.account.info')" :active="request()->routeIs('admin.account.info')"> + {{ __('My Account') }} + </x-dropdown-link> <form method="POST" action="{{ route('logout') }}"> @csrf @@ -94,6 +97,9 @@ </div> <div class="mt-3 space-y-1"> + <x-responsive-nav-link :href="route('admin.account.info')" :active="request()->routeIs('admin.account.info')"> + {{ __('My Account') }} + </x-responsive-nav-link> <!-- Authentication --> <form method="POST" action="{{ route('logout') }}"> @csrf Chúng tôi đã tạo thành công trang cập nhật tài khoản cho bảng quản trị của chúng tôi Bảng quản trị Laravel có sẵn tại https. //github. com/balajidharma/basic-laravel-admin-panel. Cài đặt bảng quản trị và chia sẻ phản hồi của bạn
Làm cách nào để tạo đăng nhập quản trị viên và người dùng trong Laravel?
Các bước để xác thực quản trị viên trong Laravel 8. . Bước 1. Tạo bảng quản trị trong cơ sở dữ liệu. . Bước 2. thêm bảo vệ. . Bước 3. Thêm phần mềm trung gian xác thực quản trị viên. . Bước 4. Thêm Middlewave vào Kernel. . Bước 5. Thêm các tuyến đăng nhập của quản trị viên. . Bước 6. Tạo bộ điều khiển AdminAuth. . Bước 7. Tạo một tập tin Blade
Làm cách nào để đăng ký và đăng nhập trong Laravel?
Ví dụ đăng ký và đăng nhập xác thực tùy chỉnh Laravel 9 . Bước 1. Tạo ứng dụng Laravel Bước 2. Kết nối với cơ sở dữ liệu Bước 3. Thiết lập bộ điều khiển xác thực Bước 4. Tạo các tuyến xác thực Bước 5. Tạo tập tin Auth Blade View Bước 6. Chạy máy chủ phát triển Laravel
Làm cách nào để lấy ID người dùng trong Laravel?
Truy xuất người dùng đã xác thực . sử dụng Chiếu sáng\Hỗ trợ\Mặt tiền\Auth; // Lấy người dùng hiện tại đã được xác thực $user = Xác thực. người sử dụng(); // Lấy ID người dùng hiện tại đã được xác thực $id = Xác thực. Tôi(); |