Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Re: Laravel 6/7/8/9/10 » Проблемма с вложенностью » 28.10.2022 07:39:48

Когда я использовал parent_id, запрос пытался найти menu_id и выдавал ошибку

#2 Laravel 6/7/8/9/10 » Проблемма с вложенностью » 27.10.2022 17:14:57

davidsmith79007
Ответов: 3

Всем привет. Laravel 8

$table->increments('id');
                $table->integer('menu_id')->unsigned()->nullable()->index();
                $table->string('name');
                $table->foreign('menu_id')->references('id')->on('menus');

Menu.php

    public function menu()
    {
        return $this->hasMany(Menu::class);
    }
    public function childrenMenu()
    {
        return $this->hasMany(Menu::class)->with('menu');
    }

MenuController.php

    public function index()
    {
        $menus = [];$submenu=[];
        $menus = Menu::whereNull('menu_id')
        ->with('childrenMenu')
        ->get();       
        foreach ($menus as $menu){
            $submenu[]=$menu->childrenMenu;
        }  
        return response()->json(array('menu'=>$menus,'submenu'=>$submenu));  
    }

Возвращает только до второго уровня вложенности. Третьего нет в массиве. Что не так?

#4 Laravel 6/7/8/9/10 » Как переименовать поле в БД? » 11.08.2022 09:05:28

davidsmith79007
Ответов: 1

Привет.Laravel 8. Переименовал поле в таблице через phpmyadmin. Переименовал в файле миграции. Хочу выполнить seed, а он ругается, что нет старого имени поля. Как это вообще делается? Ставил ui --auth
Пробовал откатывать миграцию, прописывать

Schema::table('users', function($table)
{
  $table->renameColumn('from', 'to');
});

и снова мегрировать. Поле поменялось, но seed всё равно ругается.

#6 Laravel 6/7/8/9/10 » Объект в url » 08.08.2022 13:21:42

davidsmith79007
Ответов: 1

Привет. Собственно сабж.
app.js

require('./bootstrap')

import { createApp } from 'vue'
import {createRouter, createWebHistory} from 'vue-router'
//import Main from './Main'
import { routes } from './routes';

const history = createWebHistory({});


const router = createRouter({
    base: '/',
    history:history,
    routes
});

const app = createApp({
    el: '#app',
    router
});

routes.js

import UserComponent from './components/UserComponent.vue';
import CreateComponent from './components/CreateComponent.vue';
import EditComponent from './components/EditComponent.vue';
 
export const routes = [
    {
        name: 'users',
        path: '/',
        component: UserComponent
    },
    {
        name: 'create',
        path: '/create',
        component: CreateComponent
    },
    {
        name: 'edit',
        path: '/edit/:id',
        component: EditComponent
    }
];

App.vue

<template>
    <div class="container">
        <div class="text-center m-5">
            <span class="lead">Laravel 8 CRUD Operation using Vue.js</span>
        </div>
        <nav class="navbar navbar-expand-lg navbar-light bg-light">
            <div class="collapse navbar-collapse">
                <div class="navbar-nav">
                    <router-link to="/" class="btn btn-primary m-1 nav-link">Users</router-link>
                    <router-link to="/create" class="btn btn-success m-1 nav-link">Add User</router-link>
                </div>
            </div>
        </nav>
        <router-view></router-view>
    </div>
</template>
<script>
    export default {}
</script>

В итоге
http://lvue/[objectObject]

#8 Laravel 6/7/8/9/10 » Ошибка при запуске vue.js » 08.08.2022 10:51:46

davidsmith79007
Ответов: 1

Привет Никак не победить vue. Делал по разным примерам. Последний https://hackthestuff.com/article/larave … th-example . Постоянно ошибка
export 'default' (imported as 'VueRouter') was not found in 'vue-router' А в консоле браузера Uncaught TypeError: Vue is undefined в app.js

#9 Laravel 6/7/8/9/10 » Формированию html таблиц » 05.08.2022 12:40:44

davidsmith79007
Ответов: 0

Всем привет. Решил освоить Laravel с написания админки. Прошу подсказки по структуре системы и формированию html таблиц. Назовём их Grid. Итак админка. Пункты меню. Настройки, пользователи и тп. Каждый пункт свой контроллер. В каждом пункте могут быть несколько grid. Соответственно с разными полями.
Для каждого контроллера.

1.1.Директория grid. В ней файлы grid_name.php с описанием полей таблицы

<?php
function grid_name($controller){
$options = array(
);
$columns = array(
);
$actions = array(
);
return array(
'options' => $options,
'columns' => $columns,
'actions' => $actions
);
}

1.2. файл с классом, метод которого будет получать структуру таблицы с помощью loadGrid($grid_name) и возвращать её в json.
2.Метод loadGrid($grid_name), который будет получать в качестве параметров grid_name и возвращать описание структуры в переменной $grid.
3.Ну и файл шаблона, который будет рисовать саму таблицу.
Как мне всё это сделать применительно к Laravel8. Где лучше разместить методы и классы и как их правильно связать?

#10 Laravel 6/7/8/9/10 » Файл миграции для таблицы бд обязателен » 13.07.2022 07:58:34

davidsmith79007
Ответов: 2

Всем привет. Подскажите. Файл миграции для таблицы бд обязателен? Без него можно обратиться к базе, создав там таблицу предварительно?

Подвал раздела