شما در این چالش باید سفری به اعماق لاراول داشته باشید و یک 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 اهمیتی ندارد.
ارسال پاسخ برای این سؤال