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');