Creare un controller
في Laravelلخلق controller
، يجب علينا فتح موجه الأوامر أو المحطة الطرفية ، وفقًا لنظام التشغيل الذي نستخدمه ، واكتب الأمر التالي لإنشاء وحدة التحكم باستخدام Artisan CLI (Command Line Interface).
php artisan make:controller <controller-name> --plain
يحل محل <controller-name>
باسمك controller
. سيؤدي هذا إلى إنشاء ملف controller
. ال controller
يمكن عرضها في app/Http/Controllers
.
سترى أن بعض الترميز الأساسي قد تم بالفعل من أجلك ويمكنك إضافة الترميز المخصص الخاص بك. ال controller
يمكن استدعاءه من web.php بالصيغة التالية.
Route::get(‘base URI’,’controller@method’);
1 : قم بتشغيل الأمر التالي للإنشاء MyController
php artisan make:controller MyController
2 - بعد التنفيذ الناجح ، ستحصل على الناتج التالي.
3 - سنجد وحدة التحكم التي تم إنشاؤها بتنسيق app/Http/Controller/MyController.php
مع بعض التعليمات البرمجية الأساسية المكتوبة بالفعل ويمكننا إجراء التغييرات حسب الحاجة.
لقد رأينا بالفعل middleware
ويمكننا أيضًا استخدامه مع controller
. ال middleware
يمكن أيضًا تعيينه لمسار وحدة التحكم أو داخل مُنشئ وحدة التحكم. يمكنك استخدام الطريقة middleware
لتعيين middleware
al controller
. ال middleware
المسجل يمكن أن يقتصر أيضًا على طرق معينة لـ controller
.
Route::get('profile', [
'middleware' => 'auth',
'uses' => 'UserController@showProfile'
]);
نحن هنا نقوم بتعيين برمجية مصادقة وسيطة لـ UserController في مسار ملف التعريف.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class MyController extends Controller {
public function __construct() {
$this->middleware('auth');
}
}
هنا نقوم بتعيين middleware
من المصادقة باستخدام الطريقة middleware
في المنشئ MyController .
لاحظ أن $this->middleware()
أعمال فقط إذا قمت بتعيينه في المنشئ. إذا اتصلنا $this->middleware()
من طريقة تحكم معينة ، فلن يؤدي ذلك إلى ظهور أي أخطاء ، لكن البرامج الوسيطة لن تعمل بالفعل.
هذا الخيار صالح ، ولكن شخصية أفضل وضع جميع البرامج الوسيطة في ملف routes
، لأنه من الواضح مكان البحث عن جميع ملفات middleware
.
1 - دعنا نضيف سطور التعليمات البرمجية التالية إلى الملف الطرق / web.php وننقذ.
<?php
Route::get('/mycontroller/path',[
'middleware' => 'First',
'uses' => 'MyController@showPath'
]);
2 - لنقم بإنشاء ملف middleware
ودعا FirstMiddleware
عن طريق تشغيل السطر التالي من التعليمات البرمجية.
php artisan make:middleware FirstMiddleware
3 : أضف الكود التالي في الطريقة مقبض من FirstMiddleware
تم إنشاؤه للتو في app / Http / Middleware .
<?php
namespace App\Http\Middleware;
use Closure;
class FirstMiddleware {
public function handle($request, Closure $next) {
echo '<br>First Middleware';
return $next($request);
}
}
4 - لنقم بإنشاء ملف middleware
ودعا SecondMiddleware عن طريق تشغيل الأمر التالي.
php artisan make:middleware SecondMiddleware
5 : دعنا نضيف الكود التالي في طريقة handle لملف SecondMiddleware
تم إنشاؤه للتو في app / Http / Middleware .
<?php
namespace App\Http\Middleware;
use Closure;
class SecondMiddleware {
public function handle($request, Closure $next) {
echo '<br>Second Middleware';
return $next($request);
}
}
6 : لنقم بإنشاء ملف controller
ودعا MyController عن طريق تشغيل السطر التالي.
php artisan make:controller MyController
7 - بعد تنفيذ عنوان url بنجاح ، ستحصل على الإخراج التالي -
8 - انسخ الكود التالي إلى الملف app/Http/MyController.php
.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class MyController extends Controller {
public function __construct() {
$this->middleware('Second');
}
public function showPath(Request $request) {
$uri = $request->path();
echo '<br>URI: '.$uri;
$url = $request->url();
echo '<br>';
echo 'URL: '.$url;
$method = $request->method();
echo '<br>';
echo 'Method: '.$method;
}
}
9 - لنبدأ الآن خادم الويب الداخلي php عن طريق تشغيل الأمر التالي ، إذا لم تكن قد قمت بذلك بالفعل.
php artisan serve
10 - قم بزيارة الرابط التالي.
http://localhost:8000/mycontroller/path
11 - سيظهر الإخراج كما هو موضح في الصورة التالية.
عمليًا ، يتم تضمين كل من البرامج الوسيطة ، ولكن واحدة فقط
Controller
di restful resource
غالبًا عند إنشاء تطبيق ما ، تحتاج إلى القيام بشيء ما CRUD (Create, Read, Update, Delete)
. يجعل Laravel هذه المهمة سهلة. فقط قم بإنشاء ملف controller
وسيوفر Laravel جميع طرق العمليات تلقائيًا CRUD
. يمكننا أيضًا تسجيل مسار واحد لجميع الطرق الموجودة في الملف route.php
.
1 : إنشاء وحدة تحكم تسمى MyController
عن طريق تشغيل الأمر التالي.
php artisan make:controller MyController
2 : أضف الكود التالي في app/Http/Controllers/MyController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class MyController extends Controller {
public function index() {
echo 'index';
}
public function create() {
echo 'create';
}
public function store(Request $request) {
echo 'store';
}
public function show($id) {
echo 'show';
}
public function edit($id) {
echo 'edit';
}
public function update(Request $request, $id) {
echo 'update';
}
public function destroy($id) {
echo 'destroy';
}
}
3 - دعنا نضيف السطر التالي من التعليمات البرمجية في الملف routes/web.php
.
Route::resource('my','MyController');
4 - نقوم الآن بتسجيل جميع طرق MyController عن طريق تسجيل وحدة تحكم مع مورد. يوجد أدناه جدول الإجراءات التي تديرها وحدة التحكم في الموارد.
الفعل | مسار | اكشن | اسم الطريق |
---|---|---|---|
للحصول على | / لي | مؤشر | الفهرس الخاص بي |
للحصول على | / بلدي / إنشاء | خلق | إنشاء بلدي |
سأعين | / لي | متجر | my.store |
للحصول على | /لي لي} | إظهار | عرضي |
للحصول على | / بلدي / {my} / تحرير | تحرير | تعديلي |
وضع / التصحيح | /لي لي} | تحديث | التحديث الخاص بي |
حذف | /لي لي} | هدم | تدمير |
5 - حاول تشغيل عناوين URL الموضحة في الجدول أدناه.
URL | وصف | خروج |
---|---|---|
http://localhost:8000/my | قم بتنفيذ طريقة الفهرس الخاصة بـ MyController.php | مؤشر |
http://localhost:8000/my/create | قم بتنفيذ طريقة الإنشاء الخاصة بـ MyController.php | خلق |
http://localhost:8000/my/1 | قم بتنفيذ طريقة العرض الخاصة بـ MyController.php | إظهار |
http://localhost:8000/my/1/edit | قم بتنفيذ طريقة التحرير الخاصة بـ MyController.php | تحرير |
Ercole Palmeri
تقدم Google DeepMind نسخة محسنة من نموذج الذكاء الاصطناعي الخاص بها. لا يوفر النموذج المحسن الجديد فقط ...
Laravel، المشهور بتركيبه الأنيق وميزاته القوية، يوفر أيضًا أساسًا متينًا للهندسة المعمارية المعيارية. هناك…
تساعد Cisco وSplunk العملاء على تسريع رحلتهم إلى مركز العمليات الأمنية (SOC) المستقبلي من خلال...
سيطرت برامج الفدية على الأخبار خلال العامين الماضيين. معظم الناس يدركون جيداً أن الهجمات…
تم إجراء عملية رأب العين باستخدام العارض التجاري Apple Vision Pro في مستوصف كاتانيا...
إن تطوير المهارات الحركية الدقيقة من خلال التلوين يؤهل الأطفال لمهارات أكثر تعقيدًا مثل الكتابة. للتلوين…
يعد القطاع البحري قوة اقتصادية عالمية حقيقية، وقد اتجه نحو سوق يبلغ حجمه 150 مليارًا...
أعلنت صحيفة فاينانشيال تايمز يوم الاثنين الماضي عن صفقة مع OpenAI. "فاينانشيال تايمز" ترخص صحافتها ذات المستوى العالمي...