![]() |
Урок 22. Введение в Eloquent моделиНа этом и следующих нескольких уроках по Laravel мы создадим еще одно приложение. А сегодня давайте поговорим о создании моделей для laravel. Работать будем с такой вот таблицей products с полями
Тут все просто, мы уже такое делали на прошлом уроке. Файл для миграции: <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreateProductsTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('products', function (Blueprint $table) { $table->id(); $table->string('art', 255)->unique(); $table->string('name', 255); $table->string('status', 255); $table->json('data'); $table->integer('deleted'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('products'); } }Модель Eloquent модель Product, связанную с данной таблицей, создадим вот так: php artisan make:model Product ![]() Теперь у нас появился вот такой файл app\Models\Product.php <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Product extends Model { use HasFactory; }По умолчанию он будет брать данные из таблицы products, используя дефолтный коннект с базой данных. Дальше давайте создадим контроллер MyProduct php artisan make:controller MyProductТеперь у нас появится файл app\Http\Controllers\MyProduct.php <?php namespace App\Http\Controllers; use Illuminate\Http\Request; class MyProduct extends Controller { // }Немного изменим его: <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\Product; class MyProduct extends Controller { public function index(){ $products = Product::all(); return view('product', compact('products')); } }И еще в \resources\views\ создадим файл product.blade.php с таким кодом: <!DOCTYPE html> <html lang="{{ str_replace('_', '-', app()->getLocale()) }}"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Laravel</title> body { font-family: 'Nunito', sans-serif; } </style> </head> <body class="antialiased"> @foreach ($products as $product) <div>{{ $product->name }}</div> @endforeach </body> </html>Еще чуть не забыли прописать роут для нашей страницы в routes\web.php Route::get('product', 'App\Http\Controllers\MyProduct@index');Теперь попробуем добавить какой-нибудь товар через phpmyadmin например, чтобы убедиться, что все работает и перейдем на странице с выводом http://localhost/my_shop/public/product. Все должно заработать. На следующих урокам мы на основе этого расширим функционал, реализуем добавление и удаление продуктов, вывод только доступных, валидацию и много другого интересного. ![]() Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда. ![]() Читайте также:
|
Мои услуги
|
© upread.ru 2013-2023 При перепечатке активная ссылка на сайт обязательна. |