site ecommerce ب laravel 7 الجزء الثامن

فهاد الجزء الثامن من site ecommerce ب laravel غادي نكملوا الجزء الخاص بالأدمن غادي نزيدو ل factory و seeder باش نزيدو admin منبعد غادي نزيدو تعديلات باش فاش يسجل الأدمن الدخول يتوجه ل admin dashboard ومنبعد غادي نزيدو les routes باش داكشي لي زدنا يخدم.

نظرة سريعة بالفيديو


1- توجيه الأدمن ل admin dashboard


غادي تمشي ل dossier Http/Middleware فالملف RedirectIfAuthenticated.php غادي نزيدو تعديلات باش الأدمن فاش يدخل يمشي ل admin dashoboard والمستخدم العادي للصفحة الرئيسية.

الكود ديال الملف بعد التعديل :

                                    
                                        <?php

namespace App\Http\Middleware;

use App\Providers\RouteServiceProvider;
use Closure;
use Illuminate\Support\Facades\Auth;

class RedirectIfAuthenticated
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @param  string|null  $guard
     * @return mixed
     */
    public function handle($request, Closure $next, $guard = null)
    {
        if (Auth::guard($guard)->check()) {
            return redirect("/");
        }

        if ($guard == "admin" && Auth::guard($guard)->check()) {
            return redirect("/admin");
        }
        return $next($request);
    }
}
                                    
                                

2- إضافة ل AdminFactory


يلا لاحظتي زدنا غير الفورم ديال login الخاصة بالأدمن الفورم باش يتسجل مزدناش إدن باش الأدمن يتزاد غادي نخدموا بل factory غادي تزيد factory بهاد ل commande :

php artisan make:factory AdminFactory

ف database/factories غادي تلقى ل fichier AdminFactory تزاد فيه غادي يكون المعلومات ديال الأدمن.

الكود ديال الملف هو :

                                    
                                        <?php

/** @var \Illuminate\Database\Eloquent\Factory $factory */

use App\Admin;
use Illuminate\Support\Str;
use Faker\Generator as Faker;
use Illuminate\Support\Facades\Hash;

$factory->define(Admin::class, function (Faker $faker) {
    return [
        //
        'name' => "samadi samir",
        'email' => "samadi@gmail.com",
        'email_verified_at' => now(),
        'password' => Hash::make("admin"), // password
        'remember_token' => Str::random(10),
    ];
});
                                    
                                

3- إضافة ل AdminTableSeeder


منبعد غادي تزيد AdminTableSeeder لي غادي يمكن باش ن exécuter ل factory لي زدنا.

غادي تدير هاد ل commande :

php artisan make:seeder AdminTableSeeder

ف database/seeds غادي تلقى ل fichier AdminTableSeeder تزاد فيه غادي يكون الكود لي غادي ي exécuter ل factory لي زدنا.

الكود ديال الملف هو :

                                      
                                        <?php

use App\Admin;
use Illuminate\Database\Seeder;

class AdminTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        //
        factory(Admin::class, 1)->create();
    }
}
                                      
                                    

4- إضافة ل admin ف table admins


باش نزيد admin ف table admins خصني ن exécuter AdminTableSeeder غادي تمشي ل fichier DatabaseSeeder وغادي تزيد فيه هاد التعديلات لي لتحت و منبعد دير هاد ال commande :

php artisan db:seed


                                        
                                            <?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        $this->call(AdminTableSeeder::class);
    }
}
                                        
                                    

5- إضافة les routes


باش كلشي لي زدنا يخدم خصنا نزيدو les routes غادي تمشي ل fichier web.php وتزيد هاد الكود :

                                        
                                            //admin routes
Route::get('/admin', 'AdminController@index')->name('admin.index');
Route::get('/admin/login', 'AdminController@showAdminLoginForm')->name('admin.login');
Route::post('/admin/login', 'AdminController@adminLogin')->name('admin.login');
Route::get('/admin/logout', 'AdminController@adminLogout')->name('admin.logout');
Route::get('/admin/products', 'AdminController@getProducts')->name('admin.products');
Route::get('/admin/orders', 'AdminController@getOrders')->name('admin.orders');
//orders routes
Route::resource('orders', 'OrderController');
                                        
                                    

كلمات مفاتيح :