ФорумКреативВерстка и программирование
Демиарт Поиск Новые сообщения
 Страница 1 из 3  » следующая
 мужчина  ash 22 Мая 2020, 17:48
Пост №1 * 22 Мая 2020, 17:48
администрация

Хозяин
гильдия «Темных»
8 903 поста
1584°
Возраст: 45
Регистрация: 26.11.2003
Проживает: Ковров
В этой теме обсуждаем статьи сайта «Уроки Laravel».

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

Для подсветки кода можно использовать сервис https://demicolor.demiart.ru/
  Google

Группа: Робот
1 пост
Возраст: скрывает
Регистрация: 26.11.2003

 мужчина  Metag 23 Мая 2020, 19:50 (спустя 1 день 2 часа)
Пост №2 * 23 Мая 2020, 19:50 (спустя 1 день 2 часа)

Дебютанты
1 пост
Возраст: скрывает
Регистрация: 7.07.2010
Проживает: Ярославль
Добрый день

В статье не хватает ОЧЕНЬ важного куска кода

ссылка временно скрыта

Кусок

CODE
$categories = Category::find([2,3]); // Modren Chairs, Home Chairs
$product->categories()->attach($categories);


Вставляется сюда - Создание отношения «Многие-ко-Многим»

ни пуха :)
+3
 мужчина  ash 23 Мая 2020, 19:54 (спустя 3 мин. 51 сек.)
Пост №3 * 23 Мая 2020, 19:54 (спустя 3 мин. 51 сек.)
администрация

Хозяин
гильдия «Темных»
8 903 поста
1584°
Возраст: 45
Регистрация: 26.11.2003
Проживает: Ковров
Metag, большое спасибо! исправилLaravel. Обсуждение и помощь. *
0
 мужчина  Серафим Топал 30 Мая 2020, 15:41 (спустя 6 дней)
Пост №4 * 30 Мая 2020, 15:41 (спустя 6 дней)

Дебютанты
2 поста
Возраст: 20
Регистрация: 30.05.2020
Проживает: скрывает
Статья https : // laravel demiart ru/many-to-many-relationship/
У вас кусок кода устарел:
CODE
public function up()
   {
       Schema::create('category_product', function (Blueprint $table) {
           $table->engine = 'MyISAM';
           $table->bigIncrements('id');
           $table->integer('category_id')->unsigned();
           $table->integer('product_id')->unsigned();
           $table->foreign('category_id')->references('id')->on('categories');
           $table->foreign('product_id')->references('id')->on('products');
       });
   }

Нужно заменить на этот:
CODE

Schema::create('category_product', function (Blueprint $table) {
           $table->id();
           $table->unsignedBigInteger('category_id');
           $table->unsignedBigInteger('product_id');
           $table->timestamps();

           $table->foreign('category_id')->references('id')->on('categories');
           $table->foreign('product_id')->references('id')->on('products');
       });


Сейчас нужно задавать для поля тип
CODE
unsignedBigInteger
(ларавел 7+)


Отредактировано: Серафим Топал — 30 Мая 2020, 15:43
+3
 мужчина  ash 30 Мая 2020, 16:18 (спустя 36 мин.)
Пост №5 * 30 Мая 2020, 16:18 (спустя 36 мин.)
администрация

Хозяин
гильдия «Темных»
8 903 поста
1584°
Возраст: 45
Регистрация: 26.11.2003
Проживает: Ковров
Спасибо! Поправил.
0
 мужчина  Серафим Топал 30 Мая 2020, 20:03 (спустя 3 часа 45 мин.)
Пост №6 * 30 Мая 2020, 20:03 (спустя 3 часа 45 мин.)

Дебютанты
2 поста
Возраст: 20
Регистрация: 30.05.2020
Проживает: скрывает
Цитирую (ash @ 30 May 2020, 16:18)
Спасибо! Поправил.
Кстати, есть еще такая фишка:
если удаляется запись с таблицы продукты или же категории, то чтобы не вылезало ошибок и автоматически происходило удаление записей в pivot таблице, связанных с удаленными полями можно при миграции еще модифицировать:
CODE

$table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade');
$table->foreign('product_id')->references('id')->on('products')->onDelete('cascade');


Отредактировано: Серафим Топал — 30 Мая 2020, 20:04
0
 мужчина  ash 30 Мая 2020, 20:08 (спустя 4 мин. 33 сек.)
Пост №7 * 30 Мая 2020, 20:08 (спустя 4 мин. 33 сек.)
администрация

Хозяин
гильдия «Темных»
8 903 поста
1584°
Возраст: 45
Регистрация: 26.11.2003
Проживает: Ковров
Серафим Топал, это переводы. я стараюсь лишний раз не лезть в содержимое, за исключением явных ошибок.
0
 мужчина  EpickFail 10 Июня 2020, 14:48 (спустя 10 дней)
Пост №8 * 10 Июня 2020, 14:48 (спустя 10 дней)

Дебютанты
1 пост
Возраст: 26
Регистрация: 10.06.2020
Проживает: скрывает
Добрый день! Сделал все шаги по уроку https:// laravel.demiart.ru/laravel-inertia-js-crud/ , но компонент vue не отображается, никаких ошибок не выводит, подскажите пожалуйста в какую сторону копать? Заранее спасибо!
0
 мужчина  ash 10 Июня 2020, 14:50 (спустя 2 мин. 33 сек.)
Пост №9 * 10 Июня 2020, 14:50 (спустя 2 мин. 33 сек.)
администрация

Хозяин
гильдия «Темных»
8 903 поста
1584°
Возраст: 45
Регистрация: 26.11.2003
Проживает: Ковров
К сожалению, тут я вряд ли подскажу
0
 мужчина  Виталик Неженцев 30 Июня 2020, 14:26 (спустя 19 дней)
Пост №10 * 30 Июня 2020, 14:26 (спустя 19 дней)

Размышляющие
30 постов
Возраст: 31
Регистрация: 23.11.2016
Проживает: скрывает
Добрый день, сделал все по уроку https://laravel.demiart.ru/multi-language-r...ales-with-auth/ все прекрасно работает, спасибо Вам за разъяснения. Но хотелось бы узнать как использовать вместо EN, FR, DE логотипы этих стран (флаги) в шапке сайта.
0
 мужчина  ash 30 Июня 2020, 14:45 (спустя 19 мин.)
Пост №11 * 30 Июня 2020, 14:45 (спустя 19 мин.)
администрация

Хозяин
гильдия «Темных»
8 903 поста
1584°
Возраст: 45
Регистрация: 26.11.2003
Проживает: Ковров
В строке:
CODE
@if (app()->getLocale() == $locale) style="font-weight: bold; text-decoration: underline" @endif>{{ strtoupper($locale) }}</a>

вместо {{ strtoupper($locale) }} вам нужно выводить ссылку на изображение с флагом.
Что-то вроде такого:
CODE
<img src="{{ $locale }}.png">

Тогда, при активном английском языке, будет показано изображение en.png из папки public.
0
 мужчина  Виталик Неженцев 30 Июня 2020, 14:59 (спустя 14 мин.)
Пост №12 * 30 Июня 2020, 14:59 (спустя 14 мин.)

Размышляющие
30 постов
Возраст: 31
Регистрация: 23.11.2016
Проживает: скрывает
Спасибо, все прекрасно работает!!!
0
 мужчина  Виталик Неженцев 30 Июня 2020, 22:54 (спустя 7 часов 54 мин.)
Пост №13 * 30 Июня 2020, 22:54 (спустя 7 часов 54 мин.)

Размышляющие
30 постов
Возраст: 31
Регистрация: 23.11.2016
Проживает: скрывает
Возникла еще одна проблема, пожалуйста помогите разобраться.
Я добавил в web.php новую страницу logeg, но при переходе по адресу https://site.biz/logeg не меняется на значение https://site.biz/ru/logeg и выдает 404 ошибку страница не существует, если я вручную указываю адрес страницы https://site.biz/ru/logeg то пишет ошибку Route [] not defined. Кеш laravel чистил, Роут есть.
[ скрытый текст ]

CODE

<?php

use Illuminate\Support\Facades\Route;

Route::get('/', function () {
   return redirect(app()->getLocale());
});


Route::group(['prefix' => '{locale}', 'where' => ['locale' => '[a-zA-Z]{2}'], 'middleware' => 'setlocale'], function() {

[COLOR=darkred]  Route::get('/logeg', function () {
    return view('logeg');
});[/COLOR]

   Route::get('/', function () {
       return view('home');
   });

   Auth::routes();

   Route::get('/', function () { return view('home');})->name('index');

});



Отредактировано: Виталик Неженцев — 30 Июня 2020, 22:54
0
 мужчина  Виталик Неженцев 1 Июля 2020, 00:19 (спустя 1 час 24 мин.)
Пост №14 * 1 Июля 2020, 00:19 (спустя 1 час 24 мин.)

Размышляющие
30 постов
Возраст: 31
Регистрация: 23.11.2016
Проживает: скрывает
Ошибку Route [] not defined решил путем добавления в web.php
CODE
Route::get('/logeg', function () { return view('logeg');})->name('logeg');

А ошибку 404 решил редиректом на страницу с добавленным языком, я понимаю что это костыль, может есть способ делать сразу редирект всех страниц??? Получается если я использую En версию страницы и перехожу на другую страницу у меня открывается Ru.
CODE
Route::get('/logeg', function () {  return redirect('ru/logeg');});


Отредактировано: Виталик Неженцев — 1 Июля 2020, 00:22
0
 мужчина  Владимир Марцуль 7 Июля 2020, 00:07 (спустя 5 дней)
Пост №15 * 7 Июля 2020, 00:07 (спустя 5 дней)

Дебютанты
2 поста
Возраст: скрывает
Регистрация: 6.07.2020
Проживает: скрывает
Здравствуйте, коллеги. Прошу помощи в посторении фильтра по "дочерним" полям модели.
Есть Брэнды
Цитирую
Schema::create('brands', static function(Blueprint $table) {
  $table
->string('title');
  $table
->string('slug');
  $table
->unique('slug');
});
Категории товаров
Цитирую (PHP)
Schema::create('product_categories', static function(Blueprint $table) {
  $table
->string('title');
  $table
->string('slug');
  $table
->unique('slug');
  $table
->nestedSet();
});
и Товары
Цитирую (PHP)
Schema::create('products', static function(Blueprint $table) {
  $table
->foreignId('product_category_id')->constrained()->onDelete('cascade');
  $table
->foreignId('brand_id')->constrained()->onDelete('cascade');
  $table
->string('title');
  $table
->string('slug');
  $table
->unique('slug');
});


В моделях проставлены отношения
Цитирую (PHP)
class Brand extends Model {
    public function products(): \Illuminate\Database\Eloquent\Relations\HasMany {
        return $this->hasMany(Product::class);
    }
}
Цитирую (PHP)
class ProductCategory extends Model {
    public function products(): \Illuminate\Database\Eloquent\Relations\HasMany {
        return $this->hasMany(Product::class);
    }
}
Цитирую (PHP)
class Product extends Model {
    public function productCategory(): \Illuminate\Database\Eloquent\Relations\BelongsTo {
        return $this->belongsTo(ProductCategory::class);
    }

    public function brand(): \Illuminate\Database\Eloquent\Relations\BelongsTo {
        return $this->belongsTo(Brand::class);
    }
}


Есть роут
Цитирую (PHP)
Route::get('/catalog/{brandSlug}/{productCategorySlug}', [ProductCategoryController::class, 'show'])->name('product.category.show');
В контроллере нужно получить Категорию товара с Товарам в ней и с Брэндами товаров, отфильтровав Категорию и Брэнд по своим slug'ам:
Вариант раз
Цитирую (PHP)
$r = ProductCategory::with('products.brand')
    ->whereSlug($productCategorySlug)
    ->whereHas('products.brand', static function($q) use ($brandSlug) {
        $q
->whereSlug($brandSlug);
    })
    ->firstOrFail();
выбирает все брэнды подряд, а не только те, которые относятся к товарам в категории.

Вариант два
Цитирую (PHP)
$r = ProductCategory::select('product_categories.*', 'products.*', 'brands.*',)
    ->join('products', 'products.product_category_id', '=', 'product_categories.id')
    ->join('brands', 'products.brand_id', '=', 'brands.id')
    ->where([
        ['product_categories.slug', '=', $productCategorySlug],
        ['brands.slug', '=', $brandSlug]
    ])
    ->firstOrFail();

Цитирую (SQL)
select `product_categories`.*, `products`.*, `brands`.* from `product_categories` inner join `products` on `products`.`product_category_id` = `product_categories`.`id` inner join `brands` on `products`.`brand_id` = `brands`.`id` where (`product_categories`.`slug` = 'gril' and `brands`.`slug` = 'tomsky') limit 1
делает всё правильно, но возвращает только категории без связанных товаров и брендов.

Подскажите, пожалуйста, как правильно выбрать Категорию с Товарами и Брендами товаров, отфильтровав Категорию и Брэнд по slug?
0
 Страница 1 из 3  » следующая
« Предыдущая тема · Верстка и программирование · Следующая тема»
 Похожие темы
Ссылки на обсуждения различных CMS
wordpress, joomla, drupal, etc
garrotte 0 8270 22 Февраля 2010 - 21:31
» к последнему сообщению
Обсуждение алгоритма ЧПУ
DJ SummerBoy 6 1375 29 Декабря 2010 - 14:50
» к последнему сообщению
кто знает css? )) требуется помощь..
разметка страницы
weart 5 1842 16 Марта 2007 - 16:24
» к последнему сообщению
как в PHP файл вставить HTML файл с помощью SSI?
ПОМОГИТЕ!!!!!!!!!!!!&#
-modern- 8 2666 10 Февраля 2010 - 16:29
» к последнему сообщению
Товарищи. Нужна помощь. CSS.
Плавится мозг, помогайте плз.
alx_d 31 3893 30 Августа 2007 - 21:47
» к последнему сообщению

1 посетитель в этой теме
Jon Yanjoly