شما در این چالش باید سفری به اعماق لاراول داشته باشید و یک driver جدید برای اتصال به دیتابیس پیادهسازی کنید.
دیتابیس با نام quera.json بهصورت فایل JSON در اختیار شما قرار داده شده است که دارای یک جدول به نام users است. وظیفهی شما در این سؤال این است که اتصالی با این دیتابیس برقرار کنید و اطلاعات داخل جدول users را برگردانید.
محتوای quera.json
quera.json{
"users": [
{
"name": "First",
"family": "User",
"username": "quera1",
"password": "123456789"
},
{
"name": "Second",
"family": "User",
"username": "quera2",
"password": "123456789"
},
{
"name": "Third",
"family": "User",
"username": "quera3",
"password": "123456789"
},
{
"name": "Forth",
"family": "User",
"username": "quera4",
"password": "123456789"
},
{
"name": "Fifth",
"family": "User",
"username": "quera5",
"password": "123456789"
},
{
"name": "Sixth",
"family": "User",
"username": "quera6",
"password": "123456789"
}
]
}
جزئیات پروژه
در این پروژه از Laravel 8 استفاده شده است.
پروژهی اولیه را از این لینک دانلود کنید.
ساختار فایلها
json_database
├── app
│ ├── Console
│ │ └── Kernel.php
│ ├── Exceptions
│ │ └── Handler.php
│ ├── Http
│ │ ├── Controllers
│ │ │ └── Controller.php
│ │ ├── Middleware
│ │ │ ├── Authenticate.php
│ │ │ ├── EncryptCookies.php
│ │ │ ├── PreventRequestsDuringMaintenance.php
│ │ │ ├── RedirectIfAuthenticated.php
│ │ │ ├── TrimStrings.php
│ │ │ ├── TrustHosts.php
│ │ │ ├── TrustProxies.php
│ │ │ └── VerifyCsrfToken.php
│ │ └── Kernel.php
│ ├── Models
│ │ └── User.php
│ └── Providers
│ ├── AppServiceProvider.php
│ ├── AuthServiceProvider.php
│ ├── BroadcastServiceProvider.php
│ ├── EventServiceProvider.php
│ └── RouteServiceProvider.php
├── bootstrap
│ ├── cache
│ │ ├── packages.php
│ │ └── services.php
│ └── app.php
├── config
│ ├── app.php
│ ├── auth.php
│ ├── broadcasting.php
│ ├── cache.php
│ ├── cors.php
│ ├── database.php
│ ├── filesystems.php
│ ├── hashing.php
│ ├── logging.php
│ ├── mail.php
│ ├── queue.php
│ ├── services.php
│ ├── session.php
│ └── view.php
├── database
│ ├── factories
│ │ └── UserFactory.php
│ ├── migrations
│ │ ├── 2014_10_12_000000_create_users_table.php
│ │ ├── 2014_10_12_100000_create_password_resets_table.php
│ │ └── 2019_08_19_000000_create_failed_jobs_table.php
│ └── seeders
│ └── DatabaseSeeder.php
├── public
│ ├── favicon.ico
│ ├── index.php
│ ├── robots.txt
│ └── web.config
├── resources
│ ├── css
│ │ └── app.css
│ ├── js
│ │ ├── app.js
│ │ └── bootstrap.js
│ ├── lang
│ │ └── en
│ │ ├── auth.php
│ │ ├── pagination.php
│ │ ├── passwords.php
│ │ └── validation.php
│ └── views
│ └── welcome.blade.php
├── routes
│ ├── api.php
│ ├── channels.php
│ ├── console.php
│ └── web.php
├── storage
│ ├── app
│ │ └── public
│ ├── framework
│ │ ├── cache
│ │ │ └── data
│ │ ├── sessions
│ │ ├── testing
│ │ └── views
│ └── logs
├── tests
│ ├── Feature
│ │ └── ExampleTest.php
│ ├── Unit
│ │ └── ExampleTest.php
│ ├── CreatesApplication.php
│ └── TestCase.php
├── README.md
├── artisan
├── composer.json
├── composer.lock
├── package.json
├── phpunit.xml
├── server.php
└── webpack.mix.js
راهاندازی پروژه
برای اجرای پروژه، باید php و composer را از قبل نصب کرده باشید.
- ابتدا پروژهی اولیه را دانلود و از حالت فشرده خارج کنید.
- دستور
composer installرا در پوشهی اصلی پروژه برای نصب نیازمندیها اجرا کنید.
پس از دریافت پروژه، در آدرس database/quera.json دیتابیس را مشاهده خواهید کرد که اگر به فایل config/database.php مراجعه کنید، خواهید دید که connection ای به نام json وجود دارد که اتصال با این دیتابیس را فراهم میکند. حال وظیفه شما این است که این connection با درایور json را به هستهی لاراول اضافه کنید.
'json' => [
'driver' => 'json',
'ds' => base_path() . '/database/',
'database' => 'quera.json'
]
- دقت کنید که نام
connectionحتماً بایدjsonباشد.
پس از این که اتصال با دیتابیس را فراهم کردید، باید فقط کوئری select آن را بهگونهای پیادهسازی کنید تا اطلاعات جدول users را برگرداند. برای مثال، در کلاس app/Http/Controllers/HomeController.php دو دستور به صورت زیر نوشته شده است:
public function index()
{
$users = User::all();
// $users = DB::table("users")->get();
return view('index', compact('users'));
}
این دستورات باید محتوای جدول users را برگردانند.
توجه: نام جدول ورودی مهم نیست و باید همیشه محتوای جدول users برگردانده شود.
آنچه باید آپلود کنید
توجه: شما تنها مجاز به اعمال تغییرات در پوشهی app هستید.
پس از اعمال تغییرات، کل پروژه به غیر از پوشهی vendor را Zip کرده و آپلود کنید.
توجه کنید که نام فایل Zip اهمیتی ندارد.
ارسال پاسخ برای این سؤال