💡Знаете ли вы, что в трейте можно писать абстрактные методы?

Что такое черты

Поскольку мы знаем концепцию ООП (системы объектно-ориентированного программирования) и в ней мы видели абстрактные классы и интерфейсы. «Черта» похожа на абстрактный класс в том смысле, что она не может быть создана сама по себе, но содержит методы, которые можно использовать в конкретном классе.

Черты — это механизм повторного использования кода в языках одиночного наследования, таких как 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

Вам поможет…..