Laravel по-русски

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

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

#26 Re: Laravel 5.x » Не могу установить ulogin в SleepingOwl » 08.04.2016 08:01:18

Плиз, расскажите поэтапно, как вы sleeping-owl устанавливали.

#27 Laravel 5.x » InvalidArgumentException in Route.php line 583 » 07.04.2016 21:53:54

Max_G
Ответов: 0

Установил нулевой laravel5, как в мануале.
Потом наслоил sleeping-owl, как показано здесь: http://laravel.su/docs/sleepingowl_admin/installation
При заходе на http://mysite.ua/admin пишет:

InvalidArgumentException in Route.php line 583:
Routing requirement for "adminModel" cannot be empty.

Что делать и почему?

#29 Re: Laravel 5.x » Снова вложенный селект » 19.03.2016 10:18:31

Если убрать из конструкции
->having('count', '=', count($parameters))
то и лишний знак вопроса в конце запроса пропадает.
Причём даже если ->having(\DB::raw('`count` = ' . count($parameters))) - знак вопроса всё равно добавляется.
Что за ошибка и почему?

#30 Re: Laravel 5.x » Снова вложенный селект » 19.03.2016 04:43:46

$query = \DB::table(\DB::raw('(' .$query->toSql() . ') t'))
            ->select(\DB::raw('t.*, count(t.id) count'))
            ->groupBy('t.id')
            ->having('count', '=', count($parameters));
            ->get();

Долго не мог понять, почему путаются парметры и ставятся не в той последовательности, в которой стоят знаки вопроса. Даже менял все выражения на Raw. Сейчас дошло озарение, что лишний параметр ларавел добавляет как раз для вставки $query->toSql(). И знак вопроса, даже если всё заменить на Raw, одиноко красуется в конце запроса, а параметр для него не находится.

Поэтому снова вопрос, как этот долбаный селект вставлять синтаксически правильно. Я почти у цели.

#31 Laravel 5.x » Снова вложенный селект » 19.03.2016 03:15:04

Max_G
Ответов: 2

Как в ларавел вложить один селект в другой?
Зачем? Два раза нужно group by делать.

$query2->groupBy('products.id', 'parameters.id')->toSql();

$query = \DB::table(\DB::raw('(' .$query2 . ') as t'))
            ->select(\DB::raw('count(*) as count, *'))
            ->groupBy('id')
            ->having('count', '=', count($parameters))
            ->get();

На это мне справедливо пишет:
Object of class Illuminate\Database\Eloquent\Builder could not be converted to string

А как и чем слепить их?

Нужно так:

select *, count(*) as count from ($query2 as t) ...

#32 Re: Laravel 5.x » вложенный селект » 18.03.2016 18:51:25

... или на манер:

select count(third) as thirdcount, product_id
from (select count(lala) as count, * from t group by lala having count=3) as t2
group by thirdcount

#33 Re: Laravel 5.x » замена select » 18.03.2016 18:37:59

В общем, вижу, что сырые запросы или набор их в строку будет легче при сложных выборках.
Например, выбрать продукты одной категории (многие ко многим), имеющим параметрами цвета красный или жёлтый, размеры 42, 43, 44, фирмы Адидас или Найк.

#34 Laravel 5.x » вложенный селект » 18.03.2016 17:19:59

Max_G
Ответов: 1

Как синтаксически правильно вставить один селект в другой?

$query = \DB::('t')->select('id')->toSql();

Потом можно ли это вставить в другой запрос, наподобие:

$rows = \DB::table('fonar')->select('*')->whereIn('fonar_id', $query)->get();

Чтобы два запроса не делать. Нужен аналог одного запроса, но на ларавел:

select * from fonar where fonar_id in (select id from t)

#35 Re: Laravel 5.x » замена select » 18.03.2016 17:08:15

Я имел в виду не переменную, а возможность отменить предыдущий селект и задать новый. Есть такое?

#36 Laravel 5.x » замена select » 18.03.2016 13:18:09

Max_G
Ответов: 4

Использую scope c селектом в составе.
В одном месте мне нужно вызвать этот scope с другим селектом.
Можно ли из $query как-то убрать один ->select() и  заменить его на другой?

#37 Веб-разработка » MySQL » 16.03.2016 23:47:41

Max_G
Ответов: 3

Есть таблица продуктов, есть таблица параметров, есть таблица продукт_параметр.
Херня получается у меня, когда я хочу отобрать продукты, совпадающие с тремя параметрами сразу.
Скажем, синий и детский и спортивный

Как такое решается?

Есть мысль сделать с помощью

select count(products.id) as count...
join ... join ...
where (parameters.id = 1 or parameters.id = 2 or parameters.id = 3)
group by products.id ...
having count=3
(т.е. по трём параметрам совпадает)

Или существует более изящное решение?

#38 Re: Laravel 5.x » Передать параметры в функцию $query->where(function($query) {... » 16.03.2016 16:57:53

Гусары, вольно!

Проблема поиска - это проблема подбора нужных слов.
Параметры в функцию замыкание - волшебные слова.

$query->where(function($query) use($foo, $bar) {
    $query->where('field1', $foo)
        ->whereIn('field2', $bar);
});

________________________________________________

VitalN, всё равно спасибо.

#39 Laravel 5.x » Передать параметры в функцию $query->where(function($query) {... » 16.03.2016 16:52:02

Max_G
Ответов: 2

Как передать параметры (переменные) в функцию:

$query->where(function($query) {
    $query->where('field1', $foo)
        ->whereIn('field2', $bar);
});

На function($query, $foo, $bar) отвечает:
Missing argument 2 for App\Product::App\{closure}()

#40 Re: Laravel 5.x » Elfinder: Не удалось соединиться с сервером » 09.03.2016 02:44:15

Вставил-таки в routes.php кусок:

Route::group(['middleware' => ['web']], function () {
    Route::get('elfinder/ckeditor', '\Barryvdh\Elfinder\ElfinderController@showCKeditor4');
    Route::any('elfinder/connector', '\Barryvdh\Elfinder\ElfinderController@showConnector');
});

Теперь  раздумьях, как же оно всё-таки работало в прошлом проекте без этого?
Или barryvdh что-то изменил?

#41 Laravel 5.x » Elfinder: Не удалось соединиться с сервером » 09.03.2016 02:24:26

Max_G
Ответов: 1

Скопировал с прошлого проекта заготовку. На сервере всё работало.
Т.е. я не особо помню установку и настройку elfinder (файловый менеджер) на laravel5.
Сейчас при нажатии на кнопочке окно всплывает, но в нём красуется: "Ошибка. Не удалось соединиться с сервером. Сервер не найден".
Она же: "Error Unable to connect to backend".
При поиске обнаружил кучу советов о путях и разрешениях.
Пути? В прошлом проекте всё работает без насилия над routes.php
Разрешения поставил 0777 на всё.

Кто в теме - может быть такое, что для работы elfinder нужен какой-то модуль php, недоустановленный у меня?
Нубский вопрос, но на что указывает эта ошибка Elfinder?

#42 Re: Laravel 5.x » Session » 08.03.2016 09:57:21

Так и делаю.
Но надеялся, что есть более изящный способ.

#43 Laravel 5.x » Session » 07.03.2016 17:29:01

Max_G
Ответов: 2

Как сделать такое:

$_SESSION['cart'][$i]['amount'] += $amount;

, но с объектом laravel5 \Session ?

#44 Re: Laravel 5.x » scope, преобразование массива-параметра в строку » 06.03.2016 00:00:48

Прошу прощения. Сам дурак.

public function scopeChoiceProducts($query, $id, $parameters) { ... }

self::choiceProducts($id, $parameters);

#45 Laravel 5.x » scope, преобразование массива-параметра в строку » 05.03.2016 23:40:34

Max_G
Ответов: 1

Есть scope:

public function scopeChoiceProducts($id, $parameters) { ... }

Есть вызов:

self::choiceProducts($id, $parameters);

Передаю вторым параметром массив. Внутри метода он становится строкой "1".

Какого?

#47 Laravel 5.x » return redirect($url); » 27.02.2016 19:20:51

Max_G
Ответов: 3

Какой код перенаправления у структуры return redirect($url)?
301 или иной?

#48 Laravel 5.x » Индекс на строку db » 09.02.2016 10:34:30

Max_G
Ответов: 1

Как задать длину индекса при создании строкового индекса?

В mysql это: KEY `address6` (`address`(6)),

Что нам даёт Laravel5, кроме $table->index('address') ?

#49 Laravel 5.x » middleware => auth » 03.11.2015 19:05:58

Max_G
Ответов: 8

Route::group(['middleware' => 'auth', 'prefix'=>'message'], function() {
...
});

Есть два типа зарегистрированных существ таблице users. Поле is_admin : 0 или 1.
Допустим, я хочу ать доступ  к /message только зарегитсрированным. Код выше работает.
Как мне теперь сделать доступ к /admin только юзерам с is_admin=1?

#50 Re: Laravel 5.x » Наследование и допиливание модуля из вендора » 01.11.2015 19:58:01

Пример: модуль Pingpong
Делаю модель User наследником \Pingpong\Admin\Entities\User
Добавляю в таблицу базы и в модель нужное лишнее поле.
А в config/auth.php меняю взад "'model' => Pingpong\Admin\Entities\User::class" на "'model' => App\User::class"

Но с контроллерами и вьюхами как быть?
На пальцах объясните, плиз.

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