Laravel по-русски

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

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

#1 Re: Laravel 6/7/8/9/10 » Laravel Inertia React » 01.05.2024 17:19:36

Мне интересно, здесь отвечает кто нибудь? lol
Или вопрос настолько тупой , что нет ответа .
Переделал пока так , вроде как и работает , Прошу хоть покритиковать. tongue

import {Select} from "flowbite-react";
import {router} from "@inertiajs/react";

export default function PageCount({location}) {

    function handleChange(e) {

        const key = e.target.id;
        const value = e.target.value
        const values={[key]: value};

        router.get(`${location}`,values);
    }

    return (
        <>
            <div className="max-w-[10rem]">
                <form>
                    <Select onChange={handleChange}
                            id="per_page">
                        <option>Select per page</option>
                        <option>20</option>
                        <option>40</option>
                        <option>60</option>
                        <option>80</option>
                        <option>100</option>
                    </Select>
                </form>
            </div>

        </>
    );
}

#2 Laravel 6/7/8/9/10 » Laravel Inertia React » 01.05.2024 14:55:14

DzonyBB
Ответов: 1

Добрый день , может кто нибудь поможет в одном вопросе . На сайте https://inertiajs.com/forms нашел такой пример

import { useState } from 'react'
import { router } from '@inertiajs/react'

export default function Edit() {
  const [values, setValues] = useState({
    first_name: "",
    last_name: "",
    email: "",
  })

  function handleChange(e) {
    const key = e.target.id;
    const value = e.target.value
    setValues(values => ({
        ...values,
        [key]: value,
    }))
  }

  function handleSubmit(e) {
    e.preventDefault()
    router.post('/users', values)
  }

  return (
    <form onSubmit={handleSubmit}>
      <label htmlFor="first_name">First name:</label>
      <input id="first_name" value={values.first_name} onChange={handleChange} />
      <label htmlFor="last_name">Last name:</label>
      <input id="last_name" value={values.last_name} onChange={handleChange} />
      <label htmlFor="email">Email:</label>
      <input id="email" value={values.email} onChange={handleChange} />
      <button type="submit">Submit</button>
    </form>
  )
}

Он великолепно работает с input , но вот моего ума пока не хватает , чтобы переделать его для использования с select . Вот мой пример .

import {Select} from "flowbite-react";
import {router} from "@inertiajs/react";
import {useState} from "react";

export default function Layout() {

    const [values, setValues] = useState({
        page: "",
    })

    function handleChange(e) {
        const key = e.target.id;
        const value = e.target.value
        setValues(values => ({
            ...values,
            [key]: value,
        }))

        router.get('products', values)

    }

    return (
        <>
            <div className="max-w-[6rem]">
                <form>
                    <Select onChange={handleChange}
                            defaultValue={"20"}
                            id="per_page">
                        <option>20</option>
                        <option>40</option>
                        <option>60</option>
                        <option>80</option>
                    </Select>
                </form>
            </div>

        </>
    );
}

Проблема в том , что на сервере константа page всегда Null , а id="per_page" передается с опозданием , т.е передает предыдущее значение . Если кто поможет с доработкой примера , заранее благодарен.  Спасибо.

#3 Re: Laravel 6/7/8/9/10 » Laravel + Inertia JS + Vue3 JS » 18.02.2024 16:27:28

Добрый день. Решил продолжить тему  laravel+vue .   Вопрос скорее информационный.  Может кто поделится своим опытом. Вопрос заключается при обновлении количества товара в компоненте в корзине после его добавления в таблицу. Т.е при нажатии кнопки  Add,  товар добавляется в таблицу , а кол.отображается в компоненте в  Header,  как обычно . Какие события лучше использовать,чтобы обеспечить асинхронность обновления корзины.Надеюсь Вопрос поставил правильно. Спасибо.

#4 Re: Laravel 6/7/8/9/10 » Laravel Nova BelongsTo Fields » 19.11.2023 14:49:56

Спасибо всем за помощь . Проблема решилась поиском другого плагина.
https://github.com/outl1ne/nova-multiselect-field

#5 Laravel 6/7/8/9/10 » Laravel Nova BelongsTo Fields » 16.11.2023 10:37:02

DzonyBB
Ответов: 1

Добрый день. Кто нибудь использовал https://github.com/Benjacho/belongs-to-many-field-nova ???
Что то у меня не получается настроить . Не отображает никаких данных . Или может кто нибудь посоветует более рабочее ? Заранее спасибо.

#6 Re: Laravel 6/7/8/9/10 » Laravel + Inertia JS + Vue3 JS » 10.04.2023 13:37:35

День добрый . Не стал открывать новую тему , а решил написать здесь. Решил использовать tailwind-component carousel , но столкнулся с проблемой , при интеграции в Laravel Inertia Vue 3 tailwind vite . Даже при копировании кода с официального сайта в Edge и Opera при загрузке страницы не отобращаются изображения , т.е carousel не запускается автоматически , в Chrome работает при начальной загрузке , а если переходить на страницу по Link , то та же самая история . При перезагрузке страницы , вновь работает. Может кто использовал , и поделится опытом ??? Все настройки делал соглассно документации сайта Tailwind Component.
Поиски проблемы в интернете не дали результата.
Заранее спасибо.

#8 Re: Laravel 6/7/8/9/10 » Проблемма с вложенностью » 18.12.2022 13:02:36

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

Я находил готовые примеры в инете , где пишут неограниченный уровень вложенности. Делал так как описано в примерах , но была та же проблема , 3 уровня . Как то так.

#9 Re: Laravel 6/7/8/9/10 » Файл миграции для таблицы бд обязателен » 18.07.2022 14:20:52

Миграции , только создают таблицу в базе данных , и никакого отношения к запросам не имеют.

#11 Re: Laravel 6/7/8/9/10 » Laravel + Inertia JS + Vue3 JS » 24.05.2022 09:02:49

Как всегда множество ответов и пожеланий.
  Вроде как я ступил,все работает . Но почему не работало , я так и не понял. hmm
Всем спасибо за помощь. smile

#12 Laravel 6/7/8/9/10 » Laravel + Inertia JS + Vue3 JS » 22.05.2022 11:29:20

DzonyBB
Ответов: 3

Привет всем ! Даже не знаю с чего начать . Нашел в инете библиотеку Laravel Inertia JS , посмотрел пару видеоуроков , вроде ничего . Но стoлкнулся с такой проблемой , нигде в инете не нашел инфу об абсолютном пути к файлу в Inertia , например имеется использование имя роута есть,

<Link :href="route('index')" >
Route Link
</Link>

а вот тоже самое , но использование asset,как в шаблонах Laravel не предусмотрено:

<Link :href="asset('/index')" >
Route Link
</Link>

Заинстаилоровал @codinglabs/laravel asset . Но эта беда не работает например в такой связке .

<Link :href="route('index')">
<img :src="asset('/icons/logo.png')">
</Link>

Может кто использовал Laravel Inertia ? И поделится своим опытом??? Заранее благодарен . smile

#15 Re: Laravel 6/7/8/9/10 » Laravel - Vue - Sidebar » 19.01.2022 10:16:28

Добавил в updated вызов функции getProducts(), все работает.

 
updated(){

this.getProducts();

}

Не знаю насколько это криво , критика воспринимается. Так как всегда прислушиваюсь к советам бывалых. smile
Еще раз , спасибо.

P.S все таки криво , теперь когда открываю DevTools и Vue в консоли куча ошибок. Нужно разбираться.
Еще раз прошу помощи. smile

#16 Laravel 6/7/8/9/10 » Laravel - Vue - Sidebar » 19.01.2022 09:18:49

DzonyBB
Ответов: 3

Привет всем . Я конечно понимаю , что это вопрос не по Laravel , a Vue JS , но все равно решил обратиться за помощью . Столкнулся со странным явлением . Я понимаю , что я делаю что то не так не так , но пока не могу понять что.
  Постараюсь коротко , на форме имеется sidebar-Департмент, в котором прописаны динамические ссылки

<router-link class="d-flex justify-content-between"
             v-b-toggle="`category${category.id}`"
             :to="{name:'ProductIndex',
 params:{department:department.uri,dep_id:department.id,
          category:category.uri,cat_id:category.id,
          subcategory:subcategory.uri,subcat_id:subcategory.id
          }}">
    {{ subcategory.name }}
    <b-icon class="mx-1" icon="chevron-right"></b-icon>

</router-link>
export default {

    data() {
        return {
            products: [],
        }
    },

    created() {
        this.getProducts();
    },

    computed: {
       myFunction: function() {
           this.getProducts();
        }
    },

    methods: {

        getProducts() {
            this.axios.post(`${this.$route.path}`)
                .then(response => {
                    this.products = response.data;
                });
        }
    }
}//end export

И вот , что интерессно . Если я перезагружаю страницу и кликаю на какую нибудь ссылку в sidebar , срабатывает при первом клике , а затем данные не обновляются. Но когда я нажимаю F12 и открываю вкладку Vue , где просмативаю все компоненты , то все работает нормально , при клике на sidebar все данные обновляются . Но как только закрываю DevTools , все перестает работать. После перезагрузки страницы F5 срабатывает только первый раз. Но как открываю DevTools-Vue, все работает.
  Подскажите в чем проблема . В документацию Vue заходил , но пока моего ума не хватает разобраться. Заранее спасибо.

#17 Re: Laravel 6/7/8/9/10 » Изменение пароля пользователя в админке » 13.10.2021 19:11:10

как в админке изменить пароль пользователя

  А как насчет защиты пользовательских данных? smile

#18 Re: Laravel 6/7/8/9/10 » Создание динамических роутов » 04.10.2021 16:34:56

Я прошу прощения - не разобрался, как удалить эту тему здесь. Вопрос решился это была по видимому запара ларавел.

  Да нет, это скорее Ваша запара. Во дном месте page , а в другом pages .

#19 Re: Laravel 6/7/8/9/10 » Help! с выводом информации » 12.08.2021 08:10:15

Всю голову поламал как это можно сделать. Help me please

  Один из вариантов нормализовать базу данных . Создать таблицу событий и в нее добавить поле user_id и связь один ко многим . Как то так наверное.

#20 Re: Laravel 6/7/8/9/10 » Не могу организовать редирект » 02.07.2021 18:09:52

Подскажите, что я делаю не так и как можно реализовать редирект?

  Если честно , я не понял какой велосипед Вы пытаетесь построить , но на этом же форуме в разделе Документация , почитайте раздел Аунтефикация. Ссылка ,если чО. https://laravel.ru/docs/v5/authentication

#21 Re: Laravel 6/7/8/9/10 » Маршрутизация работает без файлов web.php и api.php » 01.05.2021 23:35:59

Запустите команду

php artisan route:list 

И Вы увидете все маршруты, и где они находятся.

#22 Re: Laravel 6/7/8/9/10 » Encore laravel-admin » 20.02.2021 16:33:52

С этой проблемой разобрался , всем Спасибо.

#23 Laravel 6/7/8/9/10 » Encore laravel-admin » 20.02.2021 02:25:21

DzonyBB
Ответов: 1

Привет всем , не сочтите за рекламу , но после некоторых поисков нашел на github админку. Но застрял в одном месте . А именно каскадные списки. Перепробовал множество вариантов . Может моего ума не хватает , поэтому прошу помощи. Может кто уже использовал эту прогу . Мне нужно например в выпадающем списке при выборе department чтобы выбирались соответсвующие категории . Имеются 2 таблицы departments и categories в таблице categories присутствует поле department_id . Пример находится здесь. :
https://laravel-admin.org/docs/en/model … g%20select
Заранее благодарен откликнувшемся.
P.S только если можно обьяснить для тех кто в танке .
Вот мои потуги :
Маршрут

Route::resource('/admin/departments-categories',DepartmentCategoryController::class);

Контроллер:(по логике если аргумент Request я выбрал функцию метод Store)

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Models\Category;

class DepartmentCategoryController extends Controller
{

	public function store(Request $request)
	{
		$department_id = $request->get('q');

		return Category::departments_categories()->where('parent_id', $department_id)->get(['id', DB::raw('name as text')]);
	}
}

Нашел функцию Load:

 	public function load($field, $sourceUrl, $idField = 'id', $textField = 'text', bool $allowClear = true){
		if(Str::contains($field, '.')){
			$field = $this->formatName($field);
			$class = str_replace(['[', ']'], '_', $field);
		} else{
			$class = $field;
		}

		$placeholder = json_encode([
				'id'   => '',
				'text' => trans('admin.choose'),
			]);
			
		$strAllowClear = var_export($allowClear, true);
	

		$script = <<<EOT
		$(document).off('change', "{$this->getElementClassSelector()}");
		$(document).on('change', "{$this->getElementClassSelector()}", function () {
		var target = $(this).closest('.fields-group').find(".$class");
		$.get("$sourceUrl",{q : this.value}, function (data) {
		target.find("option").remove();
		$(target).select2({
		placeholder: $placeholder,
		allowClear: $strAllowClear,
		data: $.map(data, function (d) {
		d.id = d.$idField;
		d.text = d.$textField;
		return d;
		})
		});
		if (target.data('value')) {
		$(target).val(target.data('value'));
		}
		$(target).trigger('change');
		});
		});
EOT;
           
		Admin::script($script);

		return $this;
	}

Ну и моя форма :

$form->select('department_id','Select Department')
		->options(Department::orderBy('name')->pluck('name','id'))->default( function()
		{
			$department = Product::latest()->first();
			return($department->department_id);
		})->load('departments_categories','/admin/departments-categories');
$form->select('departments_categories');

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

#24 Re: Laravel 6/7/8/9/10 » Пагинация » 19.02.2021 14:12:12

Если я не ошибаюсь , то ранее была пагинация Bootstrap по умолчанию , а теперь Tailwind вроде как . Попробуйте в AppServiceProvider прописать

	
	public function boot(){
		
	  Paginator::useBootstrap();

	}

https://laravel.com/docs/8.x/releases#t … tion-views

#25 Re: Laravel 6/7/8/9/10 » Laravel 8.26.1 vue » 06.02.2021 17:02:21

ну хотя бы посмотрите что за ошибкиу меня под вин на OpenServer все ставится без проблем

  Там в тегах кода все отображается , пришлось вручную устанавливать, chokidar, pooper,urix , bootstrap 4.6 .
Единственное , что не поборол , так это <<SKIPPING OPTIONAL DEPENDENCY>> . Нашел в инете совет прописать в файле package.json <<"optionalDependencies": []>> , но предупреждения все равно выскакивают.
  Я уже написал , у меня версия OpenServer 5.3.8 PHP 8 , node 14.15.4 . Попробуйте создать новый проэкт laravel , ставится версия 8.26.1  , и установить ui vue , а затем запустить npm install i npm run dev . Что то я не поверю , что не будет никаких error и предупреждений . Может я все таки что то не так делаю ???

node и npm надо ставить отдельно

С этим тоже вроде как разобрался , нашел в мануале , создать файл path.txt и прописать там путь к node. Сейчас все нормально.
Запустил npm run watch файлы компилировались и в папке public появились папки js и css .
Спасибо что откликнулись.

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