لینک‌های مفید برای شرکت در مسابقه:

بعد از مسابقه در ساعت ۱۹ امروز وبیناری برای حل بخشی از سوالات مسابقه و پاسخگویی به سوالات شما تدارک دیده‌ایم که می‌توانید از طریق این لینک به رایگان ثبت‌نام نمایید.

در زمان مسابقه می‌توانید سوال‌های خود را از قسمت "سوال بپرسید" مطرح کنید.

دیتابیس JSON


شما در این چالش باید سفری به اعماق لاراول داشته باشید و یک driver جدید برای اتصال به دیتابیس پیاده‌سازی کنید.

دیتابیس با نام quera.json به‌صورت فایل JSON در اختیار شما قرار داده شده است که دارای یک جدول به نام users است. وظیفه‌ی شما در این سؤال این است که اتصالی با این دیتابیس برقرار کنید و اطلاعات داخل جدول users را برگردانید.

محتوای 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"
      }
  ]
}
JSON

جزئیات پروژه🔗

در این پروژه از 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
Plain text
راه‌اندازی پروژه

برای اجرای پروژه، باید php و composer را از قبل نصب کرده باشید.

  • ابتدا پروژه‌ی اولیه را دانلود و از حالت فشرده خارج کنید.
  • دستور composer install را در پوشه‌ی اصلی پروژه برای نصب نیازمندی‌ها اجرا کنید.

پس از دریافت پروژه، در آدرس database/quera.json دیتابیس را مشاهده خواهید کرد که اگر به فایل config/database.php مراجعه کنید، خواهید دید که connection ای به نام json وجود دارد که اتصال با این دیتابیس را فراهم می‌کند. حال وظیفه شما این است که این connection با درایور json را به هسته‌ی لاراول اضافه کنید.

'json' => [
    'driver' => 'json',
    'ds' => base_path() . '/database/',
    'database' => 'quera.json'
]
PHP
  • دقت کنید که نام 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'));
}
PHP

این دستورات باید محتوای جدول users را برگردانند.

توجه: نام جدول ورودی مهم نیست و باید همیشه محتوای جدول users برگردانده شود.

آن‌چه باید آپلود کنید🔗

توجه: شما تنها مجاز به اعمال تغییرات در پوشه‌ی app هستید.

پس از اعمال تغییرات، کل پروژه به غیر از پوشه‌ی vendor را Zip کرده و آپلود کنید.

توجه کنید که نام فایل Zip اهمیتی ندارد.

ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.