💡Знаете ли вы, что в трейте можно писать абстрактные методы?
Что такое черты
Поскольку мы знаем концепцию ООП (системы объектно-ориентированного программирования) и в ней мы видели абстрактные классы и интерфейсы. «Черта» похожа на абстрактный класс в том смысле, что она не может быть создана сама по себе, но содержит методы, которые можно использовать в конкретном классе.
Черты — это механизм повторного использования кода в языках одиночного наследования, таких как PHP.
Проще говоря, трейты позволяют вам создавать желаемые методы в настройках класса, используя ключевое слово
trait
. Затем вы можете наследовать этот класс с помощью ключевого словаuse
.
Шаг 1: Установите новое приложение Laravel
Как правило, я вызываю свой первый шаг, устанавливая новое приложение laravel. Однако, если вы уже выполнили это задание, вы можете пропустить его и сразу перейти ко второму шагу.
Запустите команду, чтобы начать установку проекта.
composer create-project laravel/laravel laravel-traits-example — prefer-dist
Сразу после установки проекта зайдите в каталог проекта.
cd laravel-traits-example
Шаг 2. Настройте подключение к базе данных
Пожалуйста, вставьте следующий код в файл .env, и он вызывает связь между laravel и базой данных с уточненным консенсусом.
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD=
Шаг 3: Модель и миграции
Нам нужно создать модель пользователя, чтобы мы могли установить схему в базе данных. Запустите команду для создания модели пользователя.
php artisan make:model User -m
Откройте файл database/migrations/timestamp_user_table.php и включите следующий код.
<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreateUsersTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create(‘Users’, function (Blueprint $table) { $table->id(); $table->string(‘name’); $table->string(‘email’)->unique(); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists(‘Users’); } }
Откройте app/Models/User.php и вставьте модальные значения в массив $fillable.
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class User extends Model { use HasFactory; public $fillable = [ ‘name’, ‘email’, ]; }
Приведенная ниже команда предвещает выполнение миграции.
php artisan migrate
Шаг 4: Создайте трейты в Laravel
Создайте папку Traits в app/Http, затем создайте файл Traits/UserTrait.php, затем поместите весь код в app/Http/Traits/UserTrait.php:
приложение/Traits/UserTrait.php
<?php namespace App\Traits; use App\Models\User; trait UserTrait { public function index() { // Fetch all the users from the 'users' table. $users = User::all(); return view('users')->with(compact('users')); } }
Шаг 5. Добавьте маршрут
Прежде всего, мы создадим ресурсный маршрут, чтобы показать пользователям, использующим трейты в laravel 8. поэтому давайте добавим простые маршруты, как показано ниже:
маршруты/web.php
use App\Http\Controllers\UserController; Route::resource('users', UserController::class);
Шаг 6. Создайте контроллер
Здесь мы создадим новый контроллер как UserController. поэтому давайте добавим приведенный ниже код в этот файл контроллера.
приложение\Http\Controllers\UserController
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Traits\UserTrait; class UserController extends Controller { use UserTrait; }
Шаг 7. Создайте файл просмотра
здесь нам нужно создать файл блейда, и в этом файле блейда мы используем пользователей и используем их код.
resources/views/users.blade.php
<!DOCTYPE html> <html> <head> <title>Laravel Trait Example</title> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha512-MoRNloxbStBcD8z3M/2BmnT+rg4IsMxPkXaGh2zD6LGNNFE80W3onsAhRcMAMrSoyWL9xD7Ert0men7vR8LUZg==" crossorigin="anonymous" /> </head> <body> <div class="container"> <div class="row mt-5"> <div class="col-10 offset-1 mt-5"> <div class="card"> <div class="card-header bg-info"> <h3 class="text-white">Laravel Trait Example</h3> </div> <div class="card-body"> <table class="table table-bordered"> <tr> <th>No.</th> <th>Name</th> <th>Email</th> </tr> @forelse($users as $key => $user) <tr> <td>{{ ++$key }}</td> <td>{{ $user->name }}</td> <td>{{ $user->email }}</td> </tr> @empty <tr> <td colspan="3">No Users Found</td> </tr> @endforelse </table> </div> </div> </div> </div> </div> </body> </html>
Шаг 8. Создайте фиктивные записи.
Здесь нам нужно добавить несколько фиктивных записей в таблицу пользователя с помощью factory. Итак, давайте откроем терминал и запустим следующую команду artisan tinker:
php artisan tinker User::factory()->count(100)->create()
Шаг 9. Запустите свой проект
Теперь мы готовы запустить наш пример, поэтому выполните следующую команду для быстрого запуска:
php artisan serve
Теперь вы можете открыть следующий URL-адрес в своем браузере:
http://localhost:8000/users
Вам поможет…..