Как обрабатывать / создавать модели из таблиц, созданных в Laravel приложении внешнего интерфейса? - PullRequest
1 голос
/ 13 апреля 2020

Я создаю приложение, используя laravel. Таблицы и столбцы будут создаваться на внешнем интерфейсе с применением кодов схемы внутри контроллера. Но как я могу создать модели без программирования каждой из них вручную? Любая идея кодировать его?

Пример контроллера (работает нормально):

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB; 

class teste extends Controller
{
    public function CreateTable(Request $tableName)
    {
        Schema::create($tableName, function (Blueprint $table) {
            $table->string('email')->index();
            $table->string('token');
            $table->timestamp('created_at')->nullable();
        });
        //return view
    }
}

1 Ответ

0 голосов
/ 13 апреля 2020

Вы можете использовать это для создания моделей из вашего контроллера.

Artisan::call('make:model ' + $modelPath + '/' + $request->modelName)

Теперь есть много вариантов для создания миграций, контроллера, маршрутов ресурсов и т. Д. c. вместе с моделью. Вы можете проверить их, если хотите.

Команда создаст модель. Конечно, вы можете создать модель по названию таблицы. Но это не будет следовать соглашениям об именах. Как имена таблиц во множественном числе, так и названия моделей в единственном числе с первой буквой в верхнем регистре.

Если бы вы использовали artisan для создания миграции таблицы вместе с моделью Laravel, обработали бы некоторые сложные наименования. Например, модель Category со столом categories или модель Software со столом software. Вот почему я рекомендую отправлять название модели отдельно от вашего вида.

Настоящая проблема возникает, когда вы планируете построить всю модель программно вместе с полями. Laravel не позволяет вам сделать это. Для этого вам придется создать собственную команду.

Кроме того, даже если вы создаете поля программно, вам все равно придется go вернуться к модели, чтобы определить отношения. Вы также можете создать свою собственную команду для обработки этого.

Однако, вы можете go - этот вопрос , чтобы иметь некоторое представление. Этот парень попросил подобную вещь, как вы.

Кроме того, есть несколько пакетов, которые читают вашу таблицу и возвращают ее для построения вашей модели. Вот пример . Другой пример здесь .

Примечание : если вы планируете создать собственную команду и сделать ее с открытым исходным кодом, пожалуйста, дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...