AbdulrahmanMasoud / laravel-arabic-nots

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Commands

php artisan serv

دي عشان اشغل المشروع بتاعي علي اللوكل هوست

Make New Controller

php artisan make:controller ControlerName

ده عشان ينشئ لي كنترولر جديد ولو عايز ينشئ لي كنترولر جديد مع الدوال اللي بستخدمها هكتب الامر ده

php artisan make:controller ControlerName -r

Make New Model

php artisan make:model ModelName -m

ده بيعملي مودل جديد ولما انا ضيفت ال -ام بيعملي المايجريشن بتاعتي

طيب لو كتبت كده

php artisan make:model ModelName -a

كده انا بقوله اعملي المودل و اعملي الميججريشن واعملي كنترولر كمان

Migrations

php artisan migrate

دي عشان تنشئ الداتابيز بتاعتي اللي انا عملتها في الميجريشن


Routing

Route::get('/path',[ControllerName::class,'method']);

الراوت ده انا بعمله من خلال ان انا بكتي راوت وبعدين احدد الميثود اللي هيستخدمه سواء جيت او بوست او بوت او دليت اللي هي دي

Route::get(); Route::post(); Route::put(); Route::delete();

وبعد كده بحدد المسار اللي هدخل عليه

Route::get('login');

وبعد كده انا بحددله الكنترولر اللي هيستخدمه اول اما يدخل علي المسار اللي انا حددته واحدد للكنترولر اي داله هيستخدمها في المسار ده Route::get('login',[LoginController::class,'userLogin']);

يبقا هنا انا قولتله الراوت بتاعك نوعه جيت و المسار اللي هتدخل عليه اسمه لوجين و الكنترولر اللي هتستخدمه اسمه لوجين كنترولر ونوعه كلاس و الدله اللي هتستخدمها من الكنترولر ده اللي اسمها يوزر لوجين

Route::apiResource('posts',[PostController::class]);

هنا انا عملت روت جديد بس مش واخد جيت ولا بوست ولا اي حاجه من الحاجات دي عشان الروت انا محدده هيعمل كل الميثودث اللي موجوده ف الكنترولر بتاع البوست


Passing Data In Route

Route::get('/user/{id}',[ControllerName::class,'method']);


Database Relations

ازاي اربط جدول معين بجدول تاني

$table->foreing('user_id')->references('id)->on('users')->onDelete('cascade');

هنا انا اول حاجه بقوله الخليه اللي هخزن فيها اسمها يوزر اي دي وده هجيبه منين بقا من حاجه اسمها اي دي طيب الايدي ده موجود فين انا حددتله في جدول اليوزرز وبعدين ف الاخر خالص قولتله لو اتحذف احذفه معاك

طيب تمام عايز بقا اربط الموديلز ببعض واحدد نوع العلاقه ايه

طيب لو انا عندي حاجه زي بلوج سيستم وعايز اعمل علاقه بين اليوزرز والبوستات اول حاجه هعمل الفورنج كي في الميجريشن وبعدين ادخل علي الموديلز

In User Model

public function posts(){
    $this->hasMany(Post::class);
}

هنا بقا انا موجود ف موديل اليوزرز وحددتله نوع العلاقه هاذ مني اللي هي بتقول ان اليوزر ممكن يبقا ليه اكتر من بوست

In Post Model

public function user(){
    $this->belongsTo(User::class);
}

هنا بقا انا قولتله اربطلي الموديل ده بالموديل اللي اسمه يوزرز عشان يستخدم العلاقه اللي فيه

API Resources

{ هو طريقه سهله اقدر احول بيها الموديل ل جيسون}

دي حاجه من خلالها انا بعرف اعمل الـ اي بي اي بطريقه صحيحه ان انا بكتب الكيز بالطريقه اللي انا عايزها يعني مثلا لو في الداتا بيز

name email bio

انا اقدر اغير الكلام ده وانا برجع ال اي بي اي زي ما انا عايز يعني ممكن اخليه

name user_email caption

اي حاجه بقا انا عايزها

طيب انا عندي نو عين من الريسورس

JsonResource

{يستخدم لتحويل موديل واحد الي جيسون}

وده اللي انا بحددله الداتا بتاعتي هتطلع ازاي من جدول واحد وبحدد ايه اللي عايز ارجعه من الجدول ده

public function toArray($request)
    {
        return [
            'id' => $this->id,
            'name' => $this->name,
            'user_email' => $this->email,
            'created' => $this->created_at,
            'updated' => $this->updated_at,
        ];
    }

هنا اهوه انا كتبت الفورمات اللي انا عايزه

واقدر اضيف عليها داتا من اي جدول تاني في الداتابيز زي كده

public function toArray($request)
    {
        return [
            'id' => $this->id,
            'name' => $this->name,
            'user_email' => $this->email,
            'created' => $this->created_at,
            'updated' => $this->updated_at,
            'posts' => PostResource::collection($this->posts)
        ];
    }

انا عملت الفورمات بتاعي وكل حاجه تمام و بعدين ضيفت جزء كمان وهو البوستات و جيبته عن طريق الريسورس بتاع البوست و عملتله كوليكشن

طيب بنشئ الريسورس ده ازاي ؟ عن طريق الامر ده

php artisan make:resource NameResource

هنا بكتب الامر و في الاخر بكتب الاسم وجانبه ريسورس عشان يعرف ان ده من نوع جيسون ريسورس

طيب بستخدمه ازاي؟؟ ممكن اجي في الكنترولر في اي ميثود استخدمه عادي جدا زي كده

وضيفتله كوليكشن عشان يرجعلي كل الريكودرات

return  UserResource::collection(User::all());

ResourceCollection

{يستخدم لتحويل اكثر من موديل الي جيسون} وده انا بكتب فيه الفورمات اللي انا عايزه

public function toArray($request)
    {
        return [
            'data' => $this->collection,
            'links' => [
                'self' => 'link-value',
            ],
        ];
    }

هنا انا عملت كوليكشن يعني بجيب الداتا بتاعه الريسورس اللي هبقا فيه و بضيف عليها اي داتا انا عايزها من اي جدول تاني

طيب بنشئ الكوليكشن ده ازاي؟ عن طريق الامر ده

php artisan make:resource NameCollection

وبكتب في الاخر الاسم وبعده كلمه كوليكشن


Pagination

$users = User::where('name', '=', 'Ahmed')->paginate(15);

ده عشان يعمل باجينيشن في الصفحه انا بكتب الكويري بتعتي عادي جدا و في الاخر احط الميثود باجينيت و احدد العدد اللي انا عايزه في الصفحه كام ريكورد

ممكن تشوف الميثودث الخاصه بالباجينيشن من هنا

Pagination Methods

About