• Иерархия моделей в Laravel?

    @Finsh
    Для того, чтоб описать данные взаимоотношения в Laravel мы можем создать одну миграцию таблицы product, описать у неё все возможные свойства, что упоминаются в типах (класс, тип, артикул, ширина, высота, материал, огнеупорное ли, покрыты ли лаком), после чего создавать модели необходимых изделий, сохраняя требуемое нам наследование, но тут вопрос - как, например, указать для модели, при работе с общей таблицей (где хранятся вообще все продукты) возвращать только те, у которых указан, например, класс = (int) 2?


    Вы Собираетесь хранить довольно много лишних, пустых ячеек и создавать вагон ненужных моделей. Не делайте так. Продукты делятся не на 2 класса, а на 2 типа. А тип(Окна пластиковые, Окна деревянные) - это одно из свойств продукта(материал).

    1. Одна таблица для продуктов, где храните артикул и обязательные поля для всех продуктов.
    2. Одна таблица для свойств продуктов, где храните все свойства для продуктов.
    3. Связь многие ко многим расскажет к какому продукту какое свойство относится. Это позволит гибко добавлять свойства и прикреплять их к продуктам без вмешательства программиста.
    4. Одна таблица - одна модель. Можно заморочится и с ДМ и с репозиториями и т.д. но если по простому, то одна таблица - одна модель. Свзяывайте их реляциями.
    Ответ написан
    Комментировать
  • Как можно решить такую задачу?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    public function show($name_table)//имя таблицы
        {
            $data = DB::table($name_table)->get();
            return view('admin.table', ['data' => $data]);
        }

    Так?
    Ответ написан
    7 комментариев
  • Запросы в базу данных. LARAVEL?

    Sanasol
    @Sanasol Куратор тега Laravel
    нельзя просто так взять и загуглить ошибку
    Когда ж документацию-то начнут люди читать.

    Во-первых что такое where('username', '=', Auth::user())

    Auth::user() это целый объект, вы его весь сравниваете с username вместо Auth::user()->username.

    Во-вторых уже написали get() делать надо, но тогда может выдать массив строк из базы. Поэтому используйте ->first().

    А потом результат только после проверки что результат вообще есть, иначе в случае любой ошибки у вас будет undefined property
    if($user) {
    
    }


    В-третьих если вы пишите авторизацию, то делаете это зря: php artisan make:auth
    Ответ написан
    1 комментарий