Controllers in Laravel- معالجة منطق التطبيق وتفاعلات البيانات

Controllers في Laravel فئات مسؤولة عن التعامل مع منطق التطبيق وتسهيل التفاعل بين النماذج ووجهات النظر. Controllers تساعد في فصل منطق التطبيق عن واجهة المستخدم ، وإنشاء هيكل مشروع واضح وقابل للصيانة.

 

إنشاء وحدة تحكم

لإنشاء وحدة تحكم في Laravel ، يمكنك استخدام Laravel أمر Artisan. على سبيل المثال ، لإنشاء وحدة تحكم باسم UserController ، يمكنك تشغيل الأمر التالي في المحطة:

php artisan make:controller UserController

بمجرد إنشاء وحدة التحكم ، يمكنك تحديد طرق المعالجة داخل وحدة التحكم. على سبيل المثال ، في index() الطريقة ، يمكنك استرداد البيانات من نموذج وتمريرها إلى طريقة عرض للعرض:

namespace App\Http\Controllers;  
  
use App\Models\User;  
use Illuminate\Http\Request;  
  
class UserController extends Controller  
{  
    public function index()  
    {  
        $users = User::all();  
  
        return view('users.index', ['users' => $users]);  
    }  
  
    // Other handling methods  
}  

في المثال أعلاه ، نستخدم النموذج User لاسترداد بيانات المستخدم من قاعدة البيانات. ثم نقوم بتمرير هذه البيانات إلى users.index العرض لعرض قائمة المستخدمين.

Controllers يدعم أيضًا طرقًا مثل store() ، update() وللتعامل delete() مع إنشاء البيانات وتحديثها وحذفها. يمكنك التفاعل مع قاعدة البيانات من خلال هذه الطرق.

 

HUsing controller في route

لاستخدام controller in route ، يمكنك تحديد controller الاسم والطريقة المقابلة في الملف routes/web.php.

use App\Http\Controllers\UserController;  
  
Route::get('/users', [UserController::class, 'index']);  

في هذا المثال ، عندما يصل المستخدم إلى /users عنوان URL ، Laravel سوف يستدعي index() الطريقة في UserController لمعالجة الطلب.

 

قم بإنشاء عرض لشاشة قائمة المستخدمين

لإنشاء الملف users.index ، يمكنك استخدام الأمر التالي:

php artisan make:view users.index

سيقوم هذا الأمر بإنشاء index.blade.php ملف في resources/views/users الدليل.

بمجرد إنشاء الملف ، يمكنك فتح الملف index.blade.php وتصميم واجهة الصفحة users.index. يمكنك استخدام صيغة Blade لإنشاء بنية HTML وعرض البيانات من وحدة التحكم.

<!-- resources/views/users/index.blade.php -->  
@extends('layouts.app')  
  
@section('content')  
    <h1>Users</h1>  
    <ul>  
        @foreach($users as $user)  
            <li>{{ $user->name }}</li>  
        @endforeach  
    </ul>  
@endsection  

في المثال أعلاه ، نستخدم التخطيط app.blade.php من خلال @extends('layouts.app'). يتم تحديد محتوى الصفحة داخل @section('content') ويعرض قائمة المستخدمين من $users المتغير داخل @foreach حلقة.

لاستخدام users.index الصفحة ، تحتاج إلى تحديد المسار المقابل في الملف routes/web.php للإشارة إلى الطريقة الموجودة في وحدة التحكم وإرجاع users.index العرض.

 

باختصار ، controllers في Laravel المساعدة على فصل منطق التطبيق والتعامل مع معالجة البيانات. باستخدام controllers ، يمكنك إنشاء تطبيقات قوية وقابلة للصيانة بتنسيق Laravel.