These are chat archives for LaravelRUS/chat

21st
Aug 2015
Maxim
@Big-Shark
Aug 21 2015 02:26
+
JhaoDa
@jhaoda
Aug 21 2015 02:29
Флудерасты
Maxim
@Big-Shark
Aug 21 2015 03:12
Кто поможет с маленькой задачей, есть 2 массива, и в одном надо поменять ключи на данные из другого массива
https://3v4l.org/3cmHo
Желательно без форича
Cheshirrski
@Cheshirrski
Aug 21 2015 05:40
@Big-Shark получаешь ключи из второго массива array_keys(), получаешь данные из первого array_values(), делаешь array_combine($keys, $values)
Artemy
@lartie
Aug 21 2015 05:46
Привет все. Как можно задать отдельную кодировку для поля таблицы?
Мне нужно для хранения Emoji
Cheshirrski
@Cheshirrski
Aug 21 2015 05:52
@artemiydeveloper для мускуля
CREATE TABLE enctest (
    str1 CHAR(10) CHARSET koi8r,
    str2 CHAR(15) COLLATE utf8_general_ci
);
Artemy
@lartie
Aug 21 2015 05:57
@Cheshirrski спасибо. я только что нашел еще вот такое решение от ларавель.
$table->charset();
$table->collate();
Denrso
@Denrso
Aug 21 2015 06:52
доброго дня
Paul Klementyev
@klermonte
Aug 21 2015 06:52
здаров
Denrso
@Denrso
Aug 21 2015 06:54

подскажите куда копать. в контроллере вывожу записи запросом
$data = DB::select('SELECT a.id,a.inv_number,a.summa,a.ser_no,b.device_name,b.fullname,b.hw_ver,c.type_name,d.vendor_name,d.country,e.name... и т д
return view('pages.home')->with('posts', $data);

как сделать постранично.. paginate не работает =(

Artur Gafurov
@assurrussa
Aug 21 2015 06:56
Maxim
@Big-Shark
Aug 21 2015 07:28
@Cheshirrski ну я примерное так и думал, только у меня получилось все немного сложней, ты можешь написать свою реализацию и кинуть на нее ссылку?
@Denrso так ты же деалешь сырой запрос, как ты думаешь будет работать постраничная навигация?
Cheshirrski
@Cheshirrski
Aug 21 2015 07:30
@Big-Shark у тебя во втором массиве количество ключей != количеству значений в первом, это так и должно быть?
array_combine нужно чтобы ==
Denrso
@Denrso
Aug 21 2015 07:32
@Big-Shark запрос большой.. через конструктор запросов делать? или мне paginator нужен
Cheshirrski
@Cheshirrski
Aug 21 2015 07:33
@Denrso можно и так и так
Maxim
@Big-Shark
Aug 21 2015 07:39
@Cheshirrski да, так и должно быть
@Denrso а в чем проблемма сделать через констркутор запросов?
Denrso
@Denrso
Aug 21 2015 07:40
@Big-Shark сейчас делаю через конструктор.. где то читал что большой запрос нежелательно делать через конструктор.
Cheshirrski
@Cheshirrski
Aug 21 2015 07:40
@Big-Shark тогда нужна логика что делать если значений больше чем ключей и наоборот
Maxim
@Big-Shark
Aug 21 2015 07:41
@Denrso булшит)
@Cheshirrski я же там вывел какой массив должен быть в итоге, мы заменяем ключи только если они есть, если их нет, просто игнорируем, также массив в котором указаны новые ключи, может быть больше
Cheshirrski
@Cheshirrski
Aug 21 2015 07:49
@Big-Shark покажи свой вариант, чтобы я не написал аналогичный
projct1
@projct1
Aug 21 2015 07:54
подскажите как быть, чтобы при биндинге модели в родном Html, если название такого рода image[alias][], как сделать чтобы автоматом подставлялось значение alias? если бинжу родительскую модель Product, которая имеет связь hasMany с Gallery
Paul Klementyev
@klermonte
Aug 21 2015 08:00
image[alias][1]
projct1
@projct1
Aug 21 2015 08:02
@klermonte не работает так
@klermonte image должно так же называться как и метод связи?
Paul Klementyev
@klermonte
Aug 21 2015 08:02
покажи вызов метода, который рисует инпут?
projct1
@projct1
Aug 21 2015 08:03
щас так делаю, хочу чтобы в значение автоматом подставлялось
    {!! Form::text("image[alias][{$image->id}]", $image->alias, ['class' => 'form-control', 'placeholder' => 'Название файла']) !!}
    {!! Form::text("image[description][{$image->id}]", $image->description, ['class' => 'form-control', 'placeholder' => 'Описание']) !!}
у модели Product связующая функция называется gallery:
    public function gallery()
    {
        return $this->hasMany('App\Models\Gallery');
    }
а бинжу я Product
Paul Klementyev
@klermonte
Aug 21 2015 08:05
попробуй так
 {!! Form::text("alias.{$image->id}", $image->alias, ['class' => 'form-control', 'placeholder' => 'Название файла']) !!}
Denrso
@Denrso
Aug 21 2015 08:06
@Big-Shark сделал через конструктор а ничего страшного если у меня несколько джоинов
$data = DB::table('inventory')
            ->join('device', 'inventory.device_id', '=', 'device.device_id')
            ->join('vendor', 'device.vendor_id', '=', 'vendor.vendor_id')
            ->join('device_type', 'device.device_type_id', '=', 'device_type.device_type_id'
            ->join('node', 'node.inventory_id', '=', 'inventory.id')
            ->select('inventory.id.....
Paul Klementyev
@klermonte
Aug 21 2015 08:06
@Denrso ctrl + alt + m
projct1
@projct1
Aug 21 2015 08:07
@klermonte не работает, вместо $image->alias null надо писать, чтобы автоматом подставилось из связи
Paul Klementyev
@klermonte
Aug 21 2015 08:08
@rorc ты биндишь image или что-то другое?
если что-то другое то вот так может
projct1
@projct1
Aug 21 2015 08:08
а бинжу я Product
Paul Klementyev
@klermonte
Aug 21 2015 08:08
{!! Form::text("image.alias.{$image->id}", $image->alias, ['class' => 'form-control', 'placeholder' => 'Название файла']) !!}
projct1
@projct1
Aug 21 2015 08:10
@klermonte не, не работает
кстати я через шаблон делаю
@each('admin.product.image', $product->gallery, 'image')
Denrso
@Denrso
Aug 21 2015 08:13
This message was deleted
This message was deleted
Paul Klementyev
@klermonte
Aug 21 2015 08:15
@Denrso вот, другое дело)
Denrso
@Denrso
Aug 21 2015 08:15
@klermonte ))спасиб видел маркдаун.. неразбирался я тут перв раз)
apocello2008
@apocello2008
Aug 21 2015 08:15
Всем привет!
Maxim
@Big-Shark
Aug 21 2015 08:16
@Cheshirrski https://3v4l.org/G0jHq
@Denrso а как у тебя с этими джоинами будет работать лимит? нормально?
Denrso
@Denrso
Aug 21 2015 08:26
@Big-Shark пока незнаю разбираюсь.. есть совет?
Vadim Shashin
@Enapiuz
Aug 21 2015 08:31
Тут ясно, что я был в неадеквате, когда решил делать так, как во второй строке. Но почему-то мне поведение кажется не очевидным.
Currency::find($id);   // Благополучно возвращает модель по ид
Currency::find($id)->first();  // Возвращает первую модель в таблице. При чем у меня возвращало почему-то с id 1, когда в базе есть id 0.
projct1
@projct1
Aug 21 2015 08:32
@Enapiuz почему вообще айди со зеначением 0 хранится))))
Vadim Shashin
@Enapiuz
Aug 21 2015 08:32
Это уже привет от легаси бд
:smile:
@rorc там даже поля есть с названиями типа "bla-bla", к которым из пхп обращаться убого :smile:
Cheshirrski
@Cheshirrski
Aug 21 2015 08:38
@Big-Shark видимо я твою задачу понял немного не так, нужно чтобы если в двух массивах совпадают ключи, поменять ключи из первого массива на значения из второго. Тогда к твоей реализации мне нечего добавить
Maxim
@Big-Shark
Aug 21 2015 08:41
@Cheshirrski я просто хотел посмотреть другие реализации, так как мне кажется я гдето чтото упустил, и можно намного легче) Да, я наверное не очень корректно описал задачу
@Enapiuz тебе интересует почему он тянет с ид 1?
Paul Klementyev
@klermonte
Aug 21 2015 08:42
@Enapiuz дело в том, что find() возвращает интстанс модели, которая по замечательной логике элоквента может проксировать методы на квери билдер, вот first() вызывается у пустого квери билдера уже
Maxim
@Big-Shark
Aug 21 2015 08:42
@klermonte так работают почти все ар)
Vadim Shashin
@Enapiuz
Aug 21 2015 08:43
@Big-Shark именно
@klermonte спасибо, не думал о таком даже
Paul Klementyev
@klermonte
Aug 21 2015 08:43
@Big-Shark ну ты ж пропел продвигаешь
Maxim
@Big-Shark
Aug 21 2015 08:43
@Denrso ну если джоины один к одному, то лимиту будут работать, если 1 к многим, но наверное они будут работать не так как ты ожидаешь)
@klermonte да, в пропеле такого нет, и это мне нравится, нет путаницы
Paul Klementyev
@klermonte
Aug 21 2015 08:44
@Denrso юзай релейшены
Maxim
@Big-Shark
Aug 21 2015 08:44
@klermonte но пропел это единственный ар который я знаю, который отделяет квери, от энтите
Paul Klementyev
@klermonte
Aug 21 2015 08:44
@Big-Shark так блин, то мое сообщение и было скрытой отсылкой к пропелу:D
Maxim
@Big-Shark
Aug 21 2015 08:45
@Enapiuz ну он формирует тако запрос 'select * from currency limit 1', так что тут вопрос к бд, почему тут бует ид = 1
@klermonte Я просто имею ввиду что это не чудесная логика элоквоент, это чудесная логика почти всех ар)
@klermonte ты кстати планируешь еще чтото делать по проекту с преврашением из sql в билдер запрос?
Paul Klementyev
@klermonte
Aug 21 2015 08:47
хотелось бы, но нужно время выделись, а с ним сейчас очень туго
zerik1990
@zerik1990
Aug 21 2015 08:49
по опыту где лучше валидацию писать? в контролере или в request? или все опять от сложности валидации зависит?
Maxim
@Big-Shark
Aug 21 2015 08:49
@zerik1990 в реквест
@klermonte это плохо
zerik1990
@zerik1990
Aug 21 2015 08:50
@Big-Shark ок, спасибо
berpcor
@berpcor
Aug 21 2015 08:55
Использую ajax. В методе контроллера происходит ошибка, вызывается исключение. На странице в консоли получаю html-страницу с информацией об исключении. В Laravel нет механизма определения типа запроса и ответа соотсветствующим образом?
Сдается мне, что либо я что-то упустил, либо это должно быть доступно из коробки...
Cheshirrski
@Cheshirrski
Aug 21 2015 08:56
@berpcor if (\Request::ajax())
berpcor
@berpcor
Aug 21 2015 08:57
Ага, что с этим делать? Знаю, что есть такое.
Cheshirrski
@Cheshirrski
Aug 21 2015 08:58
@berpcor а что именно нужно?
berpcor
@berpcor
Aug 21 2015 08:58
Хотелось бы получать сообщение об ошибке в соответствующем формате, когда использую ajax. А мне приходит html-страница.
Исключения-то в контроллере отлавливаются, но когда используется ajax, этого не достаточно. Нужно еще и сообщение с описанием исключения отсылать в соотсветствующем формате.
Но это не учитывается. И одним из решений приходит ответ номер 2 по ссылке выше.
И мне интересно: я что-то упустил или это нормально?
И придется использовать костыль.
Cheshirrski
@Cheshirrski
Aug 21 2015 09:00
@berpcor
if (\Request::ajax())
{
    return response()->json([
        'message' => trans('messages.fail'),
        'type'    => 'danger'
    ]);
}
Maxim
@Big-Shark
Aug 21 2015 09:00
@berpcor насколько я знаю такого по умолчанию нет, и нужно отлваливать все исключения, и уже менять их как тебе вздумается
berpcor
@berpcor
Aug 21 2015 09:01
Любопытно. Сложно не согласиться, что это должно быть доступно из коробки...
Maxim
@Big-Shark
Aug 21 2015 09:02
@berpcor как таковых нет устоявшихся форматов об ошибке через аякс, поэтому думаю это и не сделали
berpcor
@berpcor
Aug 21 2015 09:03
Как вариант, можно было бы сделать формат ответа редактируемым, предусмотрев стандартный вариант ответа и описав его в документации...
Maxim
@Big-Shark
Aug 21 2015 09:04
@berpcor можно, ну ты же знаешь куда писать все предложения и код?
berpcor
@berpcor
Aug 21 2015 09:04
Уже пробую.
Artemy
@lartie
Aug 21 2015 09:24
Кто-нибудь сталкивался с хранением Emoji в mysql? Который час бьюсь и ничего не могу поделать.
Выставляю для полей charset=utf8mb4 collation=utf8mb4_unicode_ci и смайлы не хранятся. Попробовал указать в настройках БД данную кодировку, чтобы для всех полей использовалась и начали ошибки лезть при миграции.
Anton Komarev
@antonkomarev
Aug 21 2015 09:27
Artemy
@lartie
Aug 21 2015 09:28
@a-komarev пробовал. выдает вопросы вместо смайлов
@a-komarev почему то некоторые значит проходят, а некоторые нет.
@a-komarev долбанные мячики значит проходят всегда в БД http://joxi.ru/4AkEjp1uqqKQmq.png
berpcor
@berpcor
Aug 21 2015 10:31
В handler.php пытаюсь получить текст ошибки или код $e->getMessage();
Выводит ""
т.е. ничего
С чем может быть связано?
Maxim
@Big-Shark
Aug 21 2015 10:32
@berpcor а не пи* ли ты часом?
@berpcor dd($e); И смотрим что там
berpcor
@berpcor
Aug 21 2015 10:32
Пи* ?
Я всего лишь спрашиваю.
Maxim
@Big-Shark
Aug 21 2015 10:34
@berpcor Не воспринимай близко к сердцу, это выражение такое, просто очень странное поведения эксепшена
@berpcor у всех стандартных эксепшенов есть месседж, ты уверен что это не твйо эксепшен
berpcor
@berpcor
Aug 21 2015 10:35
TokenMismatchException {#214
  #message: ""
  #code: 0
  #file: "/var/www/storev1/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php"
  #line: 53
  -trace: array:22 [
    0 => array:3 [
      "call" => "Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle()"
      "file" => ""
Maxim
@Big-Shark
Aug 21 2015 10:35
Вот это бонус)
ЗАчем писать месседжи) Глупость какая
berpcor
@berpcor
Aug 21 2015 10:36
Да, уверен. Если не модифицировать вывод данных, то получаю html-страницу, где указано это исключение.
Да и появляется ошибка только после того, как меняю csrf-токен.
JhaoDa
@jhaoda
Aug 21 2015 10:37
Потому что у TokenMismatchException нет сообщения
И я не понимаю, зачем он
Maxim
@Big-Shark
Aug 21 2015 10:38
@berpcor throw new TokenMismatchException; Ну собственно он вот так его и кидает.
berpcor
@berpcor
Aug 21 2015 10:38
Забавно...
Maxim
@Big-Shark
Aug 21 2015 10:38
@jhaoda Чтобы написать что токен устарел?
JhaoDa
@jhaoda
Aug 21 2015 10:40
Это не та вещь, которую надо писать
berpcor
@berpcor
Aug 21 2015 10:41
Да что ж такое. Та не та.
JhaoDa
@jhaoda
Aug 21 2015 10:41
Токен устарел = сессия протухла
berpcor
@berpcor
Aug 21 2015 10:41
Предыстория.
JhaoDa
@jhaoda
Aug 21 2015 10:41
Не надо предысторий.
Надо юзера отправлять логиниться снова
berpcor
@berpcor
Aug 21 2015 10:41
Использую ajax. В контроллере возникает исключение. На клиентскую сторону мне прилетает html-страница. И я не могу обработать ошибку. Правлю handler.php.
Русские программисты отличаются своей... вездесущностью.
Задаешь вопрос - тебе говорят, что ты живешь не правильно.
Речь не про идеологию, а про конкретную проблему, возникшую у конкретного человека.
JhaoDa
@jhaoda
Aug 21 2015 10:42
@berpcor ок, в чем смысл сказать юзеру, что токен устарел?
К чему это должно его побудить?
berpcor
@berpcor
Aug 21 2015 10:43
Я же только что написал предысторию.
Как мне обработать ошибку?
Парсить html-страницу, чтобы это понять?
Использую ajax. В контроллере возникает исключение. На клиентскую сторону мне прилетает html-страница. И я не могу обработать ошибку. Правлю handler.php. Там я добавляю это:
if ($request->ajax() || $request->wantsJson()) {

            $message = $e->getMessage();
            if (is_object($message)) { $message = $message->toArray(); }

            return response()->json($message, '400');
        }
JhaoDa
@jhaoda
Aug 21 2015 10:44
@berpcor проверяй на TokenMismatchException и отсылай что-то другое
Логично, вроде бы, не?
berpcor
@berpcor
Aug 21 2015 10:44
А если это другое исключение будет?
Мне нужно отловить любое, а не конкретное.
JhaoDa
@jhaoda
Aug 21 2015 10:45
:(
berpcor
@berpcor
Aug 21 2015 10:45
Просто в данном конкретном случае это появляется.
JhaoDa
@jhaoda
Aug 21 2015 10:45
Я не понимаю, тебе сложно условие дописать, что если TokenMismatchException, то отправить не 400, а 418, например?
Maxim
@Big-Shark
Aug 21 2015 10:46
@berpcor так ты отлавливаешь отдельно токен, а отдельно любое, ну или ифом просто проверяешь что там за класс в $e
JhaoDa
@jhaoda
Aug 21 2015 10:46
Или своё сообщение
berpcor
@berpcor
Aug 21 2015 10:49
@jhaoda Это конкретный случай. Как вообще отлавливать исключения в Laravel при использовании Ajax? Отписался по этому поводу на гитхабе. Предложили - https://github.com/GrahamCampbell/Laravel-Exceptions Но заморачиваться не хочется...
Для каждого возможного исключение иф писать?
JhaoDa
@jhaoda
Aug 21 2015 10:50
@berpcor да
Maxim
@Big-Shark
Aug 21 2015 10:50
Внимание вопрос, кто как делает изменения валюты на сайте, точней вывод цены в разных валютах, инетерсует вот что, значек баксов ставится перед ценой, а вот значек рублей после, кто как реализует такой функционл, может либы какие есть, и тд
JhaoDa
@jhaoda
Aug 21 2015 10:50
Если на каждый тип нужно особое поведени, то да
berpcor
@berpcor
Aug 21 2015 10:50
Нормально...
А разве предусмотреть вариант использования аякса не должно быть доступно из коробки?
JhaoDa
@jhaoda
Aug 21 2015 10:51
@Big-Shark храни шаблоны: ['USD' => '$%d', 'RUR' => '%d Р']
@berpcor Тэйлору задай вопрос, что ты нас-то пытаешь?
berpcor
@berpcor
Aug 21 2015 10:52
Задал.
Просто думал что такая очевидная вещь должна быть предусмотрена и я что-то упустил.
JhaoDa
@jhaoda
Aug 21 2015 10:55
Я так и не понял очевидности
berpcor
@berpcor
Aug 21 2015 10:56
В зарубежном IRC-чате сразу поняли...
JhaoDa
@jhaoda
Aug 21 2015 10:56
Ну так спрашивай у них, коли мы тупенькие
Maxim
@Big-Shark
Aug 21 2015 10:56
@jhaoda хаха) а еще нужно менять знаки в ценах, а также неплохо бы иметь сразу приличный список валют, и их значки и правила, поэтмоу и спрашиваю может у кого был опыт сайта, с несколбкими валютами
JhaoDa
@jhaoda
Aug 21 2015 10:57
@Big-Shark какие знаки?
berpcor
@berpcor
Aug 21 2015 10:57
Ты работаешь с ajax. В php-контроллере возникает исключение. Директива error в $.ajax не поможет его отловить. В данных от сервера ты получаешь html-страницу. JS-код просто перестает работать. Как отловить ошибку? Только получать ее в соответствующем формате. Но этого не предусмотрено из коробки.
Я не сказал, что тупенькие и не сказал, что все. Занудство - это да, несомненно.
Уже спросил.
JhaoDa
@jhaoda
Aug 21 2015 10:59
@berpcor не понимаю, откуда у тебя «В данных от сервера ты получаешь html-страницу»
berpcor
@berpcor
Aug 21 2015 10:59
Мне видео с экрана заснять, что ли? )
Maxim
@Big-Shark
Aug 21 2015 10:59
@jhaoda запятые, точки, пробелы, суммы как и даты в разных странах выводятся по разному
JhaoDa
@jhaoda
Aug 21 2015 10:59
@berpcor Проверять не надо на $e->getMessage()
Сам себе проблему создали теперь её решаешь
berpcor
@berpcor
Aug 21 2015 11:00
0_0
А я то при чем? )
JhaoDa
@jhaoda
Aug 21 2015 11:00
А кто код писал?
berpcor
@berpcor
Aug 21 2015 11:01
Мне аякс не использовать, что ли? )
Напиши простой метод для аякса. Выбрось там исключение. Вот и получится проблема.
Получишь как раз то: «В данных от сервера ты получаешь html-страницу»
JhaoDa
@jhaoda
Aug 21 2015 11:02
У меня не получается проблемы
Всё работает
berpcor
@berpcor
Aug 21 2015 11:03
Ты сейчас серьезно или это стеб? Если стеб, то я дальше код писать.
JhaoDa
@jhaoda
Aug 21 2015 11:03
Хз. Когда нет проблемы, это стёб или серьезно?
berpcor
@berpcor
Aug 21 2015 11:04
$.ajax({
                                    url: '{!! route("yourroute") !!}',
                                    data: 'data='+JSON.stringify(data_array),
                                    method: 'POST',
                                    error: function(xhr, status, error) {
                                      // Boil the ASP.NET AJAX error down to JSON.
                                      var err = eval("(" + xhr.responseText + ")");

                                      // Display the specific error raised by the server (e.g. not a
                                      //   valid value for Int32, or attempted to divide by zero).
//                                      alert(err.Message);
                                    },
                                    headers: {
                                                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                                            },
                                    beforeSend: function(){alert('before');},
                                    success: function(data){

                                    }
                                });
Повешай это в onclick на кнопку.
Тут есть лишнее, но это не важно.
В методе на серверной стороне напиши return 123;
Подмени в метатеге csrf-токен.
JhaoDa
@jhaoda
Aug 21 2015 11:05
if ($request->ajax() || $request->wantsJson()) {
    if ($e instanceof \App\Core\Exception) {
        return json($statusCode, $e->getMessage());
    }

    return json($statusCode, trans('main.something_wrong'));
}
Вот, всё пашет. Ели системное исключение, то просто заглушка выводится, если исключение приложения, то сообщение
Maxim
@Big-Shark
Aug 21 2015 11:06
https://github.com/sebastianbergmann/money вроде чтото похожее
JhaoDa
@jhaoda
Aug 21 2015 11:08
А тухлый токен надо в VerifyCsrfToken обрабатывать, что-то я тупанул ваще...
NickPanda
@NickPanda
Aug 21 2015 11:11

Всем привет
Есть такой файл vendor/vlucas/phpdotenv/src/Dotenv.php и с 44 строки там есть следующий код

        // Read file into an array of lines with auto-detected line endings
        $autodetect = ini_get('auto_detect_line_endings');
        ini_set('auto_detect_line_endings', '1');
        $lines = file($filePath, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
        ini_set('auto_detect_line_endings', $autodetect);

Как мне пытались говорить, что ini_get не является безопасной функцией и е следует запретить в конфигурации php
Вопрос, как быть , является ли этот код безопасным и вообще
Просто если ini_get() внести в запрещенные, то лара ругается

Warning: ini_get() has been disabled for security reasons in vendor/vlucas/phpdotenv/src/Dotenv.php on line 44

Заранее спасибо!

JhaoDa
@jhaoda
Aug 21 2015 11:12
@NickPanda а не говорил, почему она «не является безопасной»?
berpcor
@berpcor
Aug 21 2015 11:12
Я тыкаюсь, тыкаюсь и не пойму как у тебя это работает.
JhaoDa
@jhaoda
Aug 21 2015 11:13
@berpcor ты мне?
berpcor
@berpcor
Aug 21 2015 11:13
Да.
JhaoDa
@jhaoda
Aug 21 2015 11:13
@berpcor что именно непонятно?
NickPanda
@NickPanda
Aug 21 2015 11:14
@jhaoda Ну вот я и пытаюсь выяснить истинную сущность этой функции, хочу чтобы и конфигурация была безопасной и лара работала
berpcor
@berpcor
Aug 21 2015 11:14
Твой код.
JhaoDa
@jhaoda
Aug 21 2015 11:15
@berpcor вообще весь? Сочувствую.
Anton Komarev
@antonkomarev
Aug 21 2015 11:15
@artemiydeveloper насколько мне известно, для некоторых emoji достаточно utf8_unicode_ci, там хватает 3х байт а не 4х
berpcor
@berpcor
Aug 21 2015 11:16
Слушай, друг. Ты почему такой зануда? С тобой не возможно разговаривать, тебе не говорили. Переходишь на личности, пытаешься в чем-то уличить. Говоришь не по делу.
JhaoDa
@jhaoda
Aug 21 2015 11:16
@berpcor я задал тебе простой вопрос
Если тебе ВЕСЬ код непонятен, то я что могу сделать?
berpcor
@berpcor
Aug 21 2015 11:17
Такое ощущение, что тебе интересно само общение в критической форме, а не решение проблемы спрашивающего.
JhaoDa
@jhaoda
Aug 21 2015 11:17
@berpcor и да, я тебе не друг
berpcor
@berpcor
Aug 21 2015 11:17
Так посмотри на него сам, ты же выше других себя ставить пытаешься.
Откуда там statuscode
JhaoDa
@jhaoda
Aug 21 2015 11:18
@berpcor в начале$statusCode = $this->getStatusCode($e);
berpcor
@berpcor
Aug 21 2015 11:18
Друг - это ирония, друг.
JhaoDa
@jhaoda
Aug 21 2015 11:18
Это так важно?
berpcor
@berpcor
Aug 21 2015 11:19
Нет, это не важно. Ты пишешь код и не важно, что ты имеешь в виду.
Anton Komarev
@antonkomarev
Aug 21 2015 11:20
@berpcor ваш вопрос по истёкшему токену это больше вопрос не про laravel, а про ajax
JhaoDa
@jhaoda
Aug 21 2015 11:20
@berpcor всё, забудь про мой код
berpcor
@berpcor
Aug 21 2015 11:20
Не совсем.
Anton Komarev
@antonkomarev
Aug 21 2015 11:20
@berpcor цепляйте $(document).ajaxError(function (event, jqxhr, settings, exception) {
NickPanda
@NickPanda
Aug 21 2015 11:20
@berpcor код @jhaoda понятен, за исключением некоторых вещей
Типа $request->wantsJson() и trans () , если кому не сложно можно вкратце прояснить
$request-Юфофч понятно это роверка отправлени ли ajax запрос, второе тоже типо того, но точно не знаю
berpcor
@berpcor
Aug 21 2015 11:20
Вопрос в том, как обработать исключение возникшее в контроллере Laravel при условии использования в веб-приложении ajax'а.
Anton Komarev
@antonkomarev
Aug 21 2015 11:21
там смотрите на jqxhr.status и от этого уже решайте в приложении что делать надо
berpcor
@berpcor
Aug 21 2015 11:21
Директивой error $.ajax это не цепляется. На клиентскую сторону приходит html-страница с ошибкой Laravel.
Anton Komarev
@antonkomarev
Aug 21 2015 11:21
это глобальная функция
NickPanda
@NickPanda
Aug 21 2015 11:21
@berpcor но ведь тебе написали же код, как проверить и выкинуть исключение
Anton Komarev
@antonkomarev
Aug 21 2015 11:21
почитайте документацию jquery
projct1
@projct1
Aug 21 2015 11:22
каким методом правильней загружать файлы аяксом? PUT ?
Anton Komarev
@antonkomarev
Aug 21 2015 11:22
она выполняется после $.ajax
ей без разницы html или что пришло
berpcor
@berpcor
Aug 21 2015 11:22
Я это понимаю, поэтому и говорю об этом.
JhaoDa
@jhaoda
Aug 21 2015 11:22
:( вы заставляете меня запускать шторм
Anton Komarev
@antonkomarev
Aug 21 2015 11:22
делайте разбор в глобальной функции $(document).ajaxError(function (event, jqxhr, settings, exception) { }
в зависимости от кода ошибки решаете что делать
NickPanda
@NickPanda
Aug 21 2015 11:23
Эх, за странным выяснением обработки ajax запросов, на мой вопрос забили, хотя он будет по глобальнее
Anton Komarev
@antonkomarev
Aug 21 2015 11:23
просроченный токен это 400 код ошибки
berpcor
@berpcor
Aug 21 2015 11:23
Другой вопрос. Может, я что-то не понимаю. Как этот код ошибки получить. Для JS нет никакой ошибки.
Приходят данные не в формате json.
Anton Komarev
@antonkomarev
Aug 21 2015 11:24
ещё раз повторяю
jqxhr.status
в предложенной мной выше функции
berpcor
@berpcor
Aug 21 2015 11:24
Пробую...
NickPanda
@NickPanda
Aug 21 2015 11:25
@berpcor а чтобы лара прислала json пиши это
$statusCode = $this->getStatusCode($e);
if ($request->ajax() || $request->wantsJson()) {
    if ($e instanceof \App\Core\Exception) {
        return json($statusCode, $e->getMessage());
    }

    return json($statusCode, trans('main.something_wrong'));
}
@jhaoda извиняюсь, за то что дополнил код дабы человек видел полную картину
JhaoDa
@jhaoda
Aug 21 2015 11:25
@berpcor сейчас прям вот пошел и проверил запрос с невалидным токеном
Получил нормальный json в ответ с ошибкой 500
Anton Komarev
@antonkomarev
Aug 21 2015 11:26
оО
NickPanda
@NickPanda
Aug 21 2015 11:26
@jhaoda Ну кстати, с невалидного токена можно написать свое исключения , хотя и без JSON )
JhaoDa
@jhaoda
Aug 21 2015 11:26
Я не понимаю, в чем проблема
Anton Komarev
@antonkomarev
Aug 21 2015 11:27
вот это странно, потому что токен 400 ошибка
NickPanda
@NickPanda
Aug 21 2015 11:27
:-(
berpcor
@berpcor
Aug 21 2015 11:27
Так я и не спорю, что у тебя может получиться. Проблема не в том, что я говорю, что это не возможно. Проблема в том, что у тебя это получилось лучше, чем у меня (с твоих слов) и ты не можешь это в нормальной форме донести. Раз я спрашиваю, то это по определению означает, что у меня не получилось и я прошу помощи.
JhaoDa
@jhaoda
Aug 21 2015 11:28
@a-komarev почему 400?
Впрочем, можно и 400
Anton Komarev
@antonkomarev
Aug 21 2015 11:31
@jhaoda я не знаю, у меня 400 ошибка выпадала, сам сейчас смотрю код
@jhaoda \Symfony\Component\HttpKernel\Exception\BadRequestHttpException у меня при невалидном токене вот эта ошибка вылетает
JhaoDa
@jhaoda
Aug 21 2015 11:33
@a-komarev ну это ты сам так написал, поди
Изначально это 500-й код
Просто потому, что TokenMismatchException не потомок HttpException
Anton Komarev
@antonkomarev
Aug 21 2015 11:35
Всё верно. Совсем забыл что у меня в приложении пакет стоит: https://github.com/GrahamCampbell/Laravel-Exceptions
berpcor
@berpcor
Aug 21 2015 11:35
Вот его мне и посоветовали на гитхабе.
Anton Komarev
@antonkomarev
Aug 21 2015 11:35
А он как раз делает:
if ($exception instanceof TokenMismatchException) {
            $message = $exception->getMessage();
            $exception = new BadRequestHttpException($message ?: 'CSRF token validation failed.');
        }
JhaoDa
@jhaoda
Aug 21 2015 11:37
@berpcor давай на пальцах. Тебе надо ловить и обрабатывать TokenMismatchException. И через аякс, и просто так, верно?
Оставим пока аякс в стороне. Что у тебя происходит, когда юзер, например, отправляет форму не через аякс, а токен протух?
berpcor
@berpcor
Aug 21 2015 11:39
Безотносительно к аяксу не получится. Форма мудреная. Не отправляется без аякса.
JhaoDa
@jhaoda
Aug 21 2015 11:39
@berpcor не важно
Когда некое действие выполняется без аякса, а токен протух, то что?
NickPanda
@NickPanda
Aug 21 2015 11:39
@jhaoda выкидывается исключение TokenMismatchException
JhaoDa
@jhaoda
Aug 21 2015 11:40
@NickPanda я разве тебя спрашивал?
berpcor
@berpcor
Aug 21 2015 11:40
Выдает страницу с сообщением об исключении.
TokenMismatchException
JhaoDa
@jhaoda
Aug 21 2015 11:40
@berpcor вот. Это хорошо?
berpcor
@berpcor
Aug 21 2015 11:41
Да, но только в случаях, отличных от случаев, при которых происходит работа с аяксом.
Я получаю полезную информацию.
JhaoDa
@jhaoda
Aug 21 2015 11:41
Погоди про аякс. Протух токен = протухла сессия. Наверное, надо юзера отправить на страниц логина?
Anton Komarev
@antonkomarev
Aug 21 2015 11:41
А что в этом хорошего для пользователя?
NickPanda
@NickPanda
Aug 21 2015 11:41
@berpcor :worried:
Anton Komarev
@antonkomarev
Aug 21 2015 11:41
Клиент не получит то чего хотел
berpcor
@berpcor
Aug 21 2015 11:41
@jhaoda Да.
Anton Komarev
@antonkomarev
Aug 21 2015 11:41
и останется на странице с ошибкой
JhaoDa
@jhaoda
Aug 21 2015 11:42
@berpcor ок, вопрос: где это лучше делать? Ответ: не в обработчике ошибок точно.
У нас есть мидлваря VerifyCsrfToken, лучше делать это там, я считаю.
Теперь обратно к аяксу. Перенаправлять бесполезно, юзер не увидит. Значит, надо вернуть что-то, что бы клиент понял, что надо перелогиниться
berpcor
@berpcor
Aug 21 2015 11:43
Да. Но один момент. Возможно имеет значение. Мы в центре ставим исключение, связанное с токеном. Его я использовал, как одно из наиболее просто вызываемых для проверки. Из тех, которые могут возникнуть в реальности.
JhaoDa
@jhaoda
Aug 21 2015 11:44
@berpcor в каком центре?
berpcor
@berpcor
Aug 21 2015 11:44
В центре внимания.
Реакция на возникновение такого рода исключения - одно. Оставим это пока.
Нужно отловить любое исключение в контроллере и в случае, если $request->ajax(), то выдать информацию об исключении в формате json.
JhaoDa
@jhaoda
Aug 21 2015 11:46
Короче, я предлагаю так сделать в VerifyCsrfToken:
public function handle($request, Closure $next)
{
    try {
        return parent::handle($request, $next);
    } catch (TokenMismatchException $e) {
        if ($request->wantsJson()) {
            return json(418, 'Надо залогиниться');
        }

        return redirect()->route('auth.login.show');
    }
}
berpcor
@berpcor
Aug 21 2015 11:46
Вот, справедливости ради отмечу. Теперь подход конструктивный. За это спасибо.
JhaoDa
@jhaoda
Aug 21 2015 11:47
Ситуация с TokenMismatchException выходит за рамки логи приложения, это «базовая» логика, значит можно обработать её отдельно
berpcor
@berpcor
Aug 21 2015 11:48
Да, кстати. Это наиболеt точно выражает потребность. "Нужно отловить любое исключение в контроллере и в случае, если $request->ajax(), то выдать информацию об исключении в формате json."
NickPanda
@NickPanda
Aug 21 2015 11:48
@jhaoda а вопрос какую версию лары используем то?
ибо в 5.1
Call to undefined function App\Http\Middleware\json()
и надо бы использовать response
JhaoDa
@jhaoda
Aug 21 2015 11:48
@NickPanda это самописный хэлпер
NickPanda
@NickPanda
Aug 21 2015 11:49
@jhaoda я про json он в 5.1 не пашет как написано
JhaoDa
@jhaoda
Aug 21 2015 11:49
@NickPanda Это. Мой. Самописный. Хэлпер.
berpcor
@berpcor
Aug 21 2015 11:49
@jhaoda А если отойти от исключение с токеном. Берем за данность, что надо отловить любое исключение и отправить его в json-формате из контроллера.
JhaoDa
@jhaoda
Aug 21 2015 11:50
@NickPanda Ключевые слова «Мой» и «Самописный»
berpcor
@berpcor
Aug 21 2015 11:50
В принципе, решение по ссылке подходит.
Но загвоздка возникла в том, что не возможно вытащить сообщение об ошибке.
JhaoDa
@jhaoda
Aug 21 2015 11:50
@berpcor ты хочешь прям целиком исключение отсылать?
NickPanda
@NickPanda
Aug 21 2015 11:50

@jhaoda я понимаю, просто если писать json он выдает ошибку)
И да, я его проверил дописал response
и уже во второй раз выводят мне такое

InvalidArgumentException in Response.php line 470: The HTTP status code "0" is not valid.

Что это значит?

JhaoDa
@jhaoda
Aug 21 2015 11:50
@berpcor С трейсом и прочим?
berpcor
@berpcor
Aug 21 2015 11:51
@jhaoda Нет. Минимум, чтобы понять суть проблемы. Тот код на stackoverflow как раз все и отсылает.
И когда я решил дойти до этого минимума, то столкнулся, что просто взять сообщение об ошибке не получится.
Т.е. его нет.
JhaoDa
@jhaoda
Aug 21 2015 11:51
@NickPanda
function json($status = 200, $message = null, $data = [], $headers = [])
{
    $data = [
        'message' => empty($message) ? '' : (string) $message,
        'payload' => $data
    ];

    $headers = array_merge(['Content-Type' => 'application/json; charset=utf-8'], $headers);
    return response()->json($data, $status, $headers, JSON_UNESCAPED_UNICODE);
}
@berpcor я считаю, что пользователю не нужны ВСЕ сообщения об ошибках
Поэтому при любом системном исключении отсылаю заглушку, чего и тебе советую
berpcor
@berpcor
Aug 21 2015 11:53
@jhaoda Это не для пользователя. Это скрытый раздел администраторского раздела. Для суперпользователя.
Некий конструктор администраторского раздела.
JhaoDa
@jhaoda
Aug 21 2015 11:53
@berpcor ну тока если так...
@berpcor ну тогда в чем загвоздка-то опять? В том, что у некоторых исключений нет сообщения?
NickPanda
@NickPanda
Aug 21 2015 11:54
@jhaoda кхм, стоп стоп, это для какой версии лары такой json?
У меня шторм подсказывает что вначале пишем сообщение потом код ошибки
JhaoDa
@jhaoda
Aug 21 2015 11:55
@NickPanda что ты не понял в словах «мой», «самописный» и «хэлпер»?
berpcor
@berpcor
Aug 21 2015 11:55
@jhaoda Да. В десяточку.
С помощью рефлекшена думаю имя класса выдергивать. Хоть что-то.
NickPanda
@NickPanda
Aug 21 2015 11:55
    public function handle($request, Closure $next)
    {
        try {
            return parent::handle($request, $next);
        } catch (TokenMismatchException $e) {
            if ($request->wantsJson()) {
                //return response()->json(418, 'Надо залогиниться');
                return response()->json('Надо залогиниться',418);
            }

            return redirect()->route('auth.login.show');
        }
    }
Вообщем данный код отлично отрабатывает протухший токен
@jhaoda все я его поправил и теперь он мило выкидывает 418 ошибку и вообще он милый)
JhaoDa
@jhaoda
Aug 21 2015 11:56
@berpcor ничего тут не сделать, только костылить. Через рефлекшн можно, да
@NickPanda мне удобней был, когда код первым идет
berpcor
@berpcor
Aug 21 2015 11:56
@jhaoda Вот, очень точно подошли к проблеме. Еще раз спасибо. Всегда бы так.
JhaoDa
@jhaoda
Aug 21 2015 11:57
@berpcor просто надо вопросы формулировать точнее
NickPanda
@NickPanda
Aug 21 2015 11:57
@jhaoda ну когда код первым идет он ругается и выкидывает
InvalidArgumentException in Response.php line 470: The HTTP status code "0" is not valid.
JhaoDa
@jhaoda
Aug 21 2015 11:57
@NickPanda слушай, ты чо такой трудный?
Anton Komarev
@antonkomarev
Aug 21 2015 11:57
@jhaoda =))))
NickPanda
@NickPanda
Aug 21 2015 11:57
@jhaoda да что не так то?
JhaoDa
@jhaoda
Aug 21 2015 11:57
@NickPanda для тебя response()->json() и json() однохерственно, штоле?
Только второе с ошибкой, response()-> забыли?
Anton Komarev
@antonkomarev
Aug 21 2015 11:59
facepalm
NickPanda
@NickPanda
Aug 21 2015 11:59
@jhaoda почему с ошибкой то?
док говорит следующее
return response()->json(['name' => 'Steve', 'state' => 'CA']);
JhaoDa
@jhaoda
Aug 21 2015 11:59
Я уже даже код своей функции json() кинул, что ещё надо-то, блин?
Блять, да он троллит!
Anton Komarev
@antonkomarev
Aug 21 2015 11:59
Предлагаю код приложения всего
berpcor
@berpcor
Aug 21 2015 12:00
@jhaoda Хорошо, в следующий раз я буду формулировать вопрос точнее, а ты будешь давать понять, что не все до конца ясно и говорить, чтобы я точнее его сформулировал перед тем, как отвечать.
NickPanda
@NickPanda
Aug 21 2015 12:00
@jhaoda ааа, блин я думал вы с vendor вытащили код
Извиняюсь!!! :-(
berpcor
@berpcor
Aug 21 2015 12:00
И диалог наладится.
JhaoDa
@jhaoda
Aug 21 2015 12:00
@NickPanda Пздц...
@NickPanda т.е. ты не понял «мой», «самописный» и «хэлпер»?
NickPanda
@NickPanda
Aug 21 2015 12:01
@jhaoda Я думал весь код, который мы втащили в мидлвеер и есть самоиписный
JhaoDa
@jhaoda
Aug 21 2015 12:02
:(
NickPanda
@NickPanda
Aug 21 2015 12:02
@jhaoda блин ((((((((((( мне стало грутстно
@jhaoda Еще раз извиняюсь, что не сразу въехал
И все же что данная ошибка означает
InvalidArgumentException in Response.php line 470: The HTTP status code "0" is not valid.
И да что там насчет ini_get ()?
JhaoDa
@jhaoda
Aug 21 2015 12:04
@NickPanda я не понимаю, чем опасна ini_get()
Очень было бы интересно узнать
NickPanda
@NickPanda
Aug 21 2015 12:06
Как я понял, что если кто то не добрый напишет код, то он может узнать настройки (это как я понимаю, что делает функция)
И кстати, я так понимаю ini_set () устанавливает значение на время работы приложения верно?
@jhaoda а насчет с чего я запихну в запрещенные то
http://muff.kiev.ua/content/php
JhaoDa
@jhaoda
Aug 21 2015 12:08
@NickPanda кто там будет писать код, кроме тебя?
NickPanda
@NickPanda
Aug 21 2015 12:10
@jhaoda ну пока только я
  • это началось с того что мол напримере водресса , сайт взломали и начали творить УЖС
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 12:11

Небольшой вброс по возможным фичам php 7.1+ (сейчас в драфте):

1) Объединение типов public function some(array|Traversabe $a)
2) Декларативные контракты (см. синтаксис доктриновских аннотаций)
3) Императивные контракты public function some(int $a) : void require($a > 0)
4) Тайпхинтинг полей public int $a
5) Перечисления enum Some { A; B; C; }
6) Статический конструктор public static function __static(){}
7) Циклический else (см. ларовский блейд)
NickPanda
@NickPanda
Aug 21 2015 12:13
@jhaoda короче убираю эту функцию из запрещенных и продолжаем радоваться
Спасибо!
Andrey Baksalyar
@Baksalyar
Aug 21 2015 12:16
Всем пивет!
Еще один очень глупый вопрос!
В модели прописал protected $guarded = ['id'];
В контроллере пытаюсь создать запись для этой модели и получить ее Id
NickPanda
@NickPanda
Aug 21 2015 12:19
@SerafimArts Интересно , лару через с какое время после выхода php 7 перепишут с использованиям php 7
Andrey Baksalyar
@Baksalyar
Aug 21 2015 12:20
$model = Model::createNew( ); // Возвращает вновь созданную модель
echo $torrent->id;
Вместо id возвращается NULL
Я так понимаю, это из-за того, что id protected?
JhaoDa
@jhaoda
Aug 21 2015 12:21
@Baksalyar а если его убрать из $guarded?
Andrey Baksalyar
@Baksalyar
Aug 21 2015 12:21
По идее же он должен быть защищен не на чтение, а только на запись (массовое присвоение)
Если убрать из guarded, тогда надо что-то другое туда поставить, ибо массовое присвоение по дефолту запрещено ведь?
JhaoDa
@jhaoda
Aug 21 2015 12:22
@Baksalyar тебе проверить сложно?
Andrey Baksalyar
@Baksalyar
Aug 21 2015 12:22
Или можно как-то отключить нафиг запрет на массовое присвоение для всех полей?
JhaoDa
@jhaoda
Aug 21 2015 12:23
Можно. Ты определись, что тебе надо-то
Andrey Baksalyar
@Baksalyar
Aug 21 2015 12:24
Мне нужно получить id.
Я убрал его из protected, оно мне выдает теперь ошибки на всех полях
Anton Komarev
@antonkomarev
Aug 21 2015 12:24
Исходя из кода это невозможно:
$model = Model::createNew( ); // Возвращает вновь созданную модель echo $torrent->id;
echo $torrent->id;
Andrey Baksalyar
@Baksalyar
Aug 21 2015 12:24
А поместить туда, в protected, больше нечего, все поля нужны. :D
Anton Komarev
@antonkomarev
Aug 21 2015 12:25
$model->id попробуйте :)
JhaoDa
@jhaoda
Aug 21 2015 12:25
@Baksalyar ты почему-то путаешь protected и $guarded
Может быть, надо начать с плотного изучения РНР?
Andrey Baksalyar
@Baksalyar
Aug 21 2015 12:25
Да, точно, прошу прощенья
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 12:25
@NickPanda лара уже поодерживает 7ку
перепишут года через 3-4, скорее всего
Andrey Baksalyar
@Baksalyar
Aug 21 2015 12:26
Может быть, надо начать с плотного изучения РНР?
Сарказм понимаю, но это не помогает решить проблему.
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 12:26
*учитывая то, что 5.4 появился в 2012ом году (т.е. более 3х лет назад)
Andrey Baksalyar
@Baksalyar
Aug 21 2015 12:26
А как отключить механизм защиты от автоприсвоения вообще?
В доках вроде нет такого.
JhaoDa
@jhaoda
Aug 21 2015 12:27
@Baksalyar открой DatabaseSeeder. Но так делать ай-ай-ай, кроме как в сидах и миграциях
Andrey Baksalyar
@Baksalyar
Aug 21 2015 12:27
fillable(['*']) не дает нужного результата
Ага, вижу Eloquent::unguard();
Да я понимаю, что id оставлять в разрешенных нельзя по идее.
JhaoDa
@jhaoda
Aug 21 2015 12:29
Я исповедую принцип «запрещено всё, что не разрешено»
Andrey Baksalyar
@Baksalyar
Aug 21 2015 12:29
Но не пойму, почему нельзя получить этот id после инстанцирования модели, чушь какая-то
JhaoDa
@jhaoda
Aug 21 2015 12:29
Т.е. всегда заполняю $fillable
Andrey Baksalyar
@Baksalyar
Aug 21 2015 12:29
Т.е. считать а не записывать его.
JhaoDa
@jhaoda
Aug 21 2015 12:29
@Baksalyar ты проверял, у тебя запись в базе-то создается?
Andrey Baksalyar
@Baksalyar
Aug 21 2015 12:30
Да.
Что самое смешное.
JhaoDa
@jhaoda
Aug 21 2015 12:30
Что у тебя createNew() возвращает?
dd(Model::createNew()); делал?
Andrey Baksalyar
@Baksalyar
Aug 21 2015 12:31
    public static function createNew( $torrentInfo, $newFullPath ) {
        return new Torrent([
...
]);
JhaoDa
@jhaoda
Aug 21 2015 12:31
@Baksalyar :(
А сохранять-то модель кто будет? Пушкин?
Andrey Baksalyar
@Baksalyar
Aug 21 2015 12:32
Модель сохраняется в контроллере и появляется запись в базе
JhaoDa
@jhaoda
Aug 21 2015 12:32
Ребята, вы меня убиваете... хотя, может это и есть ваша цель?:)
alex
@eskrano
Aug 21 2015 12:32
Доброе утро!
JhaoDa
@jhaoda
Aug 21 2015 12:32
@Baksalyar как она у тебя сохраняется, если там нет сохранения?
Вывод: ты показал нам что-то нет
Andrey Baksalyar
@Baksalyar
Aug 21 2015 12:33
Как видно, там есть return
JhaoDa
@jhaoda
Aug 21 2015 12:33
@Baksalyar а save() там где?
Andrey Baksalyar
@Baksalyar
Aug 21 2015 12:33
save() есть там, куда return
JhaoDa
@jhaoda
Aug 21 2015 12:33
@Baksalyar ещё раз: dd(Model::createNew()); делал?
Andrey Baksalyar
@Baksalyar
Aug 21 2015 12:33
ОК, буду гуглить ;D
Да, делал, выдает заполненные поля.
И показывает, что id → guarded
Maxim Kot
@batFormat
Aug 21 2015 14:08
Ребят, а спящую сову можно установить поверх OctoberCMS ?
https://octobercms.com/
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 14:10
а накуя о_0
NelinD
@NelinD
Aug 21 2015 14:11
@SerafimArts чтобы башня отвалилась
Maxim Kot
@batFormat
Aug 21 2015 14:11
Идея такова, нужно чтобы человек заходил в адмнику, (либо дефолт октябрь, либо спящая) и мог добавить (в профиль любого юзера ) инфу, текст (фото) и т.д.
Оо вот как...
Maxim Kot
@batFormat
Aug 21 2015 14:27
А как тогда через стандартную сделать кто знает?(плагином)
текст + фото
чтобы была возможность любого юзеру вывести*
любому*
alex
@eskrano
Aug 21 2015 14:29
Ребята сделал как бы апи для сайта. Вот код https://gist.github.com/eskrano/99ea8956be160fc9674c . Суть его получать города и регионы с БД. Вопрос в том можно ли как то упростить код? И на сколько он гкодный.
Maxim
@Big-Shark
Aug 21 2015 14:30
@jhaoda Взываю к тебе о великий, мне кажется или вот эта статья дублирует официальную доку? http://martythomas.svbtle.com/adding-authentication-to-laravel-51 ?
alex
@eskrano
Aug 21 2015 14:31
@Big-Shark и я к нему взываю :D
Maxim
@Big-Shark
Aug 21 2015 14:31
@batFormat чего? Попробуй сформулировать вопрос номрально.

@eskrano Это что еще за

    public function actions($action,$param = null)
    {
        $action = (string) $action;
        if (method_exists(__CLASS__, $action) )
        {
            if ($param != null)
            {
                return $this->$action($param);
            }
            return $this->$action();
        }
        return response()->json(['response'=>'Method not found']);
    }

???

alex
@eskrano
Aug 21 2015 14:33
@Big-Shark как бы роут идет на этот метод Route::get('/api/method/{action}/{id?}','ApiController@actions')
->where(['id'=>'[0-9]+','action'=>'[a-zA-Z]+']);
Maxim Kot
@batFormat
Aug 21 2015 14:33
Есть пользователи,есть администратор.
Нужно сделать так, чтобы администратор заходил в админ панель и мог любому пользователю, вывести на определенной странице (в профиле), информацию(текст и фото).
Собственно и всё.
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 14:33
@Big-Shark это реализация метода __methodMissing =)
alex
@eskrano
Aug 21 2015 14:33
@SerafimArts это как? :D
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 14:34
@eskrano надо спросить у @jhaoda , он владеет ссылками на документацию
alex
@eskrano
Aug 21 2015 14:34
@SerafimArts ну а вообще код гомно или норм?
JhaoDa
@jhaoda
Aug 21 2015 14:34
@Big-Shark дублирует, да еще и учит плохому, в частности, не юзать именованные роуты
Maxim
@Big-Shark
Aug 21 2015 14:34
@eskrano ну знаешь, код немного попахивает) Хотя это не самое плохое что я видел)
alex
@eskrano
Aug 21 2015 14:35
@Big-Shark что именно попахивает там то?
JhaoDa
@jhaoda
Aug 21 2015 14:35
@Big-Shark а ваще это норма. Народ вон доку копирует и книжки издает
Maxim
@Big-Shark
Aug 21 2015 14:35
@batFormat и зачем тебе тут октобер? тут просто админки хватит
alex
@eskrano
Aug 21 2015 14:35
скажите контроллер норм вышел или удалить и заного сделать?:\
Maxim Kot
@batFormat
Aug 21 2015 14:36
Сайт на october просто..
Maxim
@Big-Shark
Aug 21 2015 14:36
@eskrano тебе как, подробно, или просто ответ по 5 бальной школе?
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 14:37
там есть __methodMissing, если не удалили, метод в контроллере
alex
@eskrano
Aug 21 2015 14:37
@Big-Shark по бальной
Maxim
@Big-Shark
Aug 21 2015 14:37
@eskrano тогда на 3
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 14:37
возвращать стоит данные, а не ответ, т.к. это всё же апи
а обрабатывать и превращать их в ответ в миддлваре
так можно будет подменяя миддлварю менять формат ответа
alex
@eskrano
Aug 21 2015 14:38
@SerafimArts т.е return $data; ?
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 14:38
не только json
@eskrano ну например, да
плюс можно будет стандартизировать
например добавлять версию
время генерации
статус ответа и прочее
alex
@eskrano
Aug 21 2015 14:39
оо как его на ларавеле замерить то?
Maxim
@Big-Shark
Aug 21 2015 14:39
@SerafimArts я может конечно сейчас покажусь грубияном, и тд, но нах*я нужны в апи другие форматы кроме джесон?
alex
@eskrano
Aug 21 2015 14:39
И пример бы такого миддлвара увидеть хотел бы
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 14:39
@Big-Shark ты не поверишь
Maxim
@Big-Shark
Aug 21 2015 14:39
@SerafimArts и кстати это можно не в мидлвеа делать, а сделать свой респонс апи
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 14:39
есть наркоманы, которым xml подавай
@Big-Shark +1
только его заткнуть в миддлварю и эррор хендлер
Vasily Belosloodcev
@bupy7
Aug 21 2015 14:40
вы ущербны раз считаете что xml не место в api
Maxim
@Big-Shark
Aug 21 2015 14:40
@SerafimArts шли их на х.
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 14:40
@Big-Shark нельзя, офф диллеры как бы
Maxim
@Big-Shark
Aug 21 2015 14:40
@bupy7 поговори нам еще тут.
alex
@eskrano
Aug 21 2015 14:40
holywar
мне то покажите пример мидлвара
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 14:41
@eskrano прости, но тебе слабо кликнуть мышью?
такой вот вопрос
=)
alex
@eskrano
Aug 21 2015 14:41
куда?
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 14:41
на ссылку "миддлвари"
Maxim
@Big-Shark
Aug 21 2015 14:41
@SerafimArts мдаа. Я сразу вспомнил как работал с одним апи, которое даные слало как хотело, у каждой функции был свой формат, ответы были также в непонятном вормате, о рест апи не слышали там даже.
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 14:41
которая слева в доках
@Big-Shark да рест похрену, главное формат единый
Vasily Belosloodcev
@bupy7
Aug 21 2015 14:42
@Big-Shark хм...ты не о Лидвертексе случайно?
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 14:42
у меня всё ещё хуже, одни посоны которые интегрили вообще даже не шарили пых
спрашивали, а это куда, а это как, что за ошибка
я там даже автокомплит полный сделал!
Maxim
@Big-Shark
Aug 21 2015 14:42
@bupy7 не помню я как они назывались, но то была новозеландская или автралийская компания, я уже точно не помню
@SerafimArts так подожди, ты же делаешь серверную части апи грубо говоря, и они должны к тебе конктится, верно? Почему они диктуют правила?
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 14:44
потому что есть ещё либа пыховская в пхаре
ибо они вообще не шарят
Maxim
@Big-Shark
Aug 21 2015 14:44
@SerafimArts кстати, перключать формат для апи обычно не так уж легко, так как в xml есть атрибуты.
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 14:44
нуууу
у меня упрощённая версия
=)
alex
@eskrano
Aug 21 2015 14:44
Мне xml не нужен
Maxim
@Big-Shark
Aug 21 2015 14:44
@SerafimArts и ты им эту либо отдаешь чтобы они работали с твоей частью?
alex
@eskrano
Aug 21 2015 14:44
в апи
а вы заладили мол мидлварю и тд
jongleb
@jongleb
Aug 21 2015 14:45
Ребзи привет
1
BadMethodCallException in Validator.php line 2596:
Method [validateJson] does not exist.
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 14:45
@Big-Shark ты не поверишь, не отдаю, а сам phar заливал и вдалбливал примеры в файлик example.php
jongleb
@jongleb
Aug 21 2015 14:45
Смотрите какая печаль
на валидации json словилась мною
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 14:45
короче это полный ад
Maxim
@Big-Shark
Aug 21 2015 14:46
@SerafimArts ок, и даже сейчас я не пойму почему нельзя было джесон?
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 14:46
вот такие у нас "разрабы" на пыхе даже есть
партнёры
jongleb
@jongleb
Aug 21 2015 14:46
Мб кто в курсе?
в доках есть json
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 14:46
@Big-Shark ну есть такие, которые сами, а там старый дотнет, который соап ловил
jongleb
@jongleb
Aug 21 2015 14:46
а на деле нет плучется
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 14:46
потом переделывали всё это
и под новое пришлось делать с нуля
по этому не заморачивался, а тупо вынес в презентеры, подсасываемые из миддлварей
Maxim
@Big-Shark
Aug 21 2015 14:47
@SerafimArts аа, ну по сути ты подстраиваешь новую версию апи просто под старый формат, как я понял
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 14:47
нет, постепенно переучиваю их к хорошему
Maxim
@Big-Shark
Aug 21 2015 14:48
@SerafimArts а я говорю именно про новую версию апи, атк сказать
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 14:48
формат новый, но форматы старые
т.к. повторюсь - дотнет старый
они сказали мол не, нужен xml
Maxim
@Big-Shark
Aug 21 2015 14:49
@SerafimArts омг)
@SerafimArts ну бывает)
alex
@eskrano
Aug 21 2015 14:50
как замерять скорость генерации страницы на ларавеле?
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 14:52
короче там в результате получился вот такой базовый контроллер для апишек (L4.2): http://pastebin.com/S6qcLs8A
адовый
но читать можно
butschster
@butschster
Aug 21 2015 14:57
Адовый, еще какой адовый
и бесполезный
alex
@eskrano
Aug 21 2015 14:57
https://gist.github.com/eskrano/99ea8956be160fc9674c дайте советы как его получше сделать. Ответ только json и требуется мне.
то чувство когда обо*рали и не дали советов как нормально сделать
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:02

и бесполезный

@butschster обоснуй

stranger-ru
@stranger-ru
Aug 21 2015 15:02
Всем привет. Скажите, правильно ли я понимаю, что все классы указанные в 'providers' => [] в конфиге app.php подключаются с каждым запросом?
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:02
провайдеры
а не просто классы
stranger-ru
@stranger-ru
Aug 21 2015 15:03
да, провайдеры.
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:03
в остальном да
NelinD
@NelinD
Aug 21 2015 15:03
шас пойдет рационализатороство
stranger-ru
@stranger-ru
Aug 21 2015 15:04
не, не, я просто документацию прочитал, где-то не нашел на некоторые вопросы ответов, где-то не до конца понял, в итоге возник целый список вопросов.
butschster
@butschster
Aug 21 2015 15:04
@SerafimArts да потому что он набросан на скорую руку и решает только малую часть задач
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:04
@butschster да, форматирует запрос-ответ для апишечки
alex
@eskrano
Aug 21 2015 15:04
https://gist.github.com/eskrano/99ea8956be160fc9674c повторю 3й раз. Как его улучшить чтоб не было "попахивания" .
stranger-ru
@stranger-ru
Aug 21 2015 15:04
вот еще вопрос, я правильно понимаю, что из коробки у форм нет клиентской валидации?
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:05
@stranger-ru laravel - это сервер-сайд фрейм
если ты не в курсе =)
stranger-ru
@stranger-ru
Aug 21 2015 15:05
ок, значит нет, понял..
censoredgit
@censoredgit
Aug 21 2015 15:05
@eskrano удали первый метод
Maxim
@Big-Shark
Aug 21 2015 15:06
@eskrano я тебе что сказал, выбирай ты хочешь подробну инфу, или оценку, ты выбрал оценку.
alex
@eskrano
Aug 21 2015 15:06
@censoredgit как потом роуты распределить к примеру?
@Big-Shark ну если тебе влом инфу предоставить, я не настаиваю .
Maxim
@Big-Shark
Aug 21 2015 15:07
Ну сейчас уже влом, тогда я бы тебе предоставил.
stranger-ru
@stranger-ru
Aug 21 2015 15:07
а есть что-нибудь подобное поведениям (behaviors), как в yii2, кроме трейтов?
Maxim
@Big-Shark
Aug 21 2015 15:07
@stranger-ru эммм, трейты)
censoredgit
@censoredgit
Aug 21 2015 15:07
@eskrano есть Route:controller и Route::resource
Maxim
@Big-Shark
Aug 21 2015 15:07
@stranger-ru бехевиоры полная чушь и бред, имхо
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:08
=)
censoredgit
@censoredgit
Aug 21 2015 15:08
@stranger-ru yii2 в 2.1 переведут их в трейты
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:08
а что такое бехевиоры?
butschster
@butschster
Aug 21 2015 15:08
@eskrano вот APIController который я написал для KodiCMS https://github.com/KodiCMS/kodicms-laravel/blob/dev/modules/API/Http/Controllers/System/Controller.php
alex
@eskrano
Aug 21 2015 15:09
@butschster @censoredgit cпасибо
Maxim
@Big-Shark
Aug 21 2015 15:09
@SerafimArts это как трейт, только бехевиор)
stranger-ru
@stranger-ru
Aug 21 2015 15:09
ок, понял, спасибо. Вот такой еще вопрос, а есть advanced шаблон какой-нибудь, или в laravel только один?
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:09
@stranger-ru ларавель и есть шаблон
alex
@eskrano
Aug 21 2015 15:09
@butschster я еще такое не потяну.
Maxim
@Big-Shark
Aug 21 2015 15:09
@SerafimArts если кратко, то представь подключения и отключения трейтов из класса по запросу, вот это и будет бихевиор
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:10
а фреймворк, если что, назвается Illuminate
butschster
@butschster
Aug 21 2015 15:10
он предоставляет едины формат ответов для AJAX запросов + ответы в json,xml,yaml формате
Maxim
@Big-Shark
Aug 21 2015 15:10
@stranger-ru в ларавель только один, и он нормальный)
butschster
@butschster
Aug 21 2015 15:10
  • отрабатывает все Exception
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:10
@Big-Shark не "В"
лара и есть этот шаблон
а фрейм называется Illuminate
Maxim
@Big-Shark
Aug 21 2015 15:10
@SerafimArts ой ну не нуди тут
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:11
@Big-Shark ну ок
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:11
да, это его фрейм
stranger-ru
@stranger-ru
Aug 21 2015 15:11
@SerafimArts @Big-Shark да, я понимаю, но разделение на backend и frontend логики не помешало бы.. А можно тогда хотя бы как-то вынести бекенд часть в субдомен, чтобы было не домен/admin а admin.домен ?
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:11
точнее сборка иллюминейт
@stranger-ru нафига?
фронтэнд во вьюхах, ассетах и прочем
бекэнд в app
Maxim
@Big-Shark
Aug 21 2015 15:12
@stranger-ru можно конечно, есть групы роутов, группу ты можешь перенаправить допустим на папку админ
и сделать папку админ во вью
@stranger-ru остальное для админки и для фронтенда как бы одинаковое
censoredgit
@censoredgit
Aug 21 2015 15:13
ребят, в 5 ларе есть базовые события? например EVENT_AFTER_REQUEST, EVENT_BEFORE_REQUEST и т.п. ? не смог найти
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:13
в Yii чтоль бекендом называется админка? о____0
@censoredgit middleware + events
middleware - хрень, которая встраивается до и после запроса на N контроллер, роут или на всё
эвенты - отдельная эвентовая система в Application
stranger-ru
@stranger-ru
Aug 21 2015 15:14
@Big-Shark ок, понятно, спасибо.
@SerafimArts нет, бекенд это и логика вся вынесена в отдельную директорию и контроллеры и вьюхи, и субдомен админки, ну ладно я понял.
censoredgit
@censoredgit
Aug 21 2015 15:14
@SerafimArts понял, спасибо
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:15
@stranger-ru эм, не вижу смысла, т.к. админка - это лишь частный случай
JhaoDa
@jhaoda
Aug 21 2015 15:15
@censoredgit есть, но не в виде констант, их надо в коде искать
censoredgit
@censoredgit
Aug 21 2015 15:16
@jhaoda о спасибо
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:16
вполне возможно, что вида app.after, app.before
stranger-ru
@stranger-ru
Aug 21 2015 15:16
а есть ли в laravel понятие модули (так-же вынесеные в отдельную директорию модели, контроллеры, вьюхи и все остальное)?
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:16
@stranger-ru ты вообще базу не смотрел?
This message was deleted
JhaoDa
@jhaoda
Aug 21 2015 15:17
@censoredgit примерно вот так это выглядит
$this->app['events']->fire('kernel.handled', [$request, $response]);
butschster
@butschster
Aug 21 2015 15:17
@stranger-ru конечно есть, https://github.com/KodiCMS/module-loader Это тебе надо со мной дружить
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:17
не совсем верное сравнение
stranger-ru
@stranger-ru
Aug 21 2015 15:17
@SerafimArts смотрел.
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:17
в ларе есть композер
а пакет и есть модуль
подключая провайдер из этого пакета, можно указать какие ресурсы для чего
butschster
@butschster
Aug 21 2015 15:18
@SerafimArts модуль с натяжкой :)
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:18
и выполнив команду публикации вытащить их и опубликовать в нужном приложении
butschster
@butschster
Aug 21 2015 15:18
именно поэтому я сделал пакет который добавляет модульную структуру с блекджеком
alex
@eskrano
Aug 21 2015 15:18
только с блекджеком?
butschster
@butschster
Aug 21 2015 15:19
@eskrano и куртизанками
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:19
да, только блекджек, остальное уже в ларе встроено :D
stranger-ru
@stranger-ru
Aug 21 2015 15:19
@SerafimArts ну композер то понятно. ок.
alex
@eskrano
Aug 21 2015 15:19
@butschster @SerafimArts и куртизанки?:)
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:19
ага
контракты называются
alex
@eskrano
Aug 21 2015 15:19
А где они встроены? :D
Аа
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:19
шатаются по методам
отдаются в аргументы по первому требованию
Di - он такой
stranger-ru
@stranger-ru
Aug 21 2015 15:20
вот такой момент еще не досмотрел, Для чего в /.env определяется APP_ENV?
alex
@eskrano
Aug 21 2015 15:20
@stranger-ru вроде в продакшене или в разработке
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:20
для того, чтоб на него ориентироваться
по умолчанию есть 4
local, production, staging, testing
точнее они заложены в ядро
в 5ке вроде избавились от стейджа
stranger-ru
@stranger-ru
Aug 21 2015 15:21
@eskrano @SerafimArts т.е. какие-то глобальные изменения данная константа не делает. Просто вроде инфо?
alex
@eskrano
Aug 21 2015 15:21
Как заменить ошибки вида Sorry, the page you are looking for could not be found. на свои
@stranger-ru не испытывал:)
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:22
@stranger-ru не обязательно, на нёй могут ориентироваться всякие расширения
например дебагбар
stranger-ru
@stranger-ru
Aug 21 2015 15:22
@SerafimArts ок, понял, спасибо.
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:22
он чекает окружение, и если оно равно local - включается
stranger-ru
@stranger-ru
Aug 21 2015 15:23
RBAC из коробки вроде тоже нет, только сторонние расширения?
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:23
помимо rbac ещё есть тысячи всяких вещей
и он привязывается к БД
а лара - это фрейм, а не CMS
censoredgit
@censoredgit
Aug 21 2015 15:24
@stranger-ru есть rbac в виде пакета. Ты еще не определился с фреймворком?)
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:24
она максимально абстрагируется от твоих требований
так что пакеты
stranger-ru
@stranger-ru
Aug 21 2015 15:24
@SerafimArts так вроде а при чем здесь RBAC и CMS? )
demon21
@demon21
Aug 21 2015 15:24
Здравствуйте. Кто знаком с sleeping-owl, может сталкивался с такой проблемой:
При попытке установить тему AdminLTE, на шаге выполнения "php artisan vendor:publish --provider=SleepingOwl/Admin/AdminLteTemplateServiceProvider --tag=assets-lte" вылетает ошибка "Nothing to publish for tag [assets-lte].". Соответственно в итоге стили, скрипты не грузятся.
Подскажите пожалуйста, в чем может быть дело?
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:25
rbac - это довольно хитроумная система ролей
которая зачастую не нужна
достаточно создать в юзере айдишник прав, 0 - админ, 1 - пользователь и т.д.
оно намного проще
а рбак требует 3 таблицы минимум (вроде 4, не?)
stranger-ru
@stranger-ru
Aug 21 2015 15:26
@SerafimArts ну смотря какой проект, если разрабатываешь какую-нибудь CRM, то куда же без RBAC.
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:26
т.е. это уже зависимость от структуры
а если переписываешь? =)
или тебе оно не нужно?
по этому если надо - ставь километры оных с помощью пакета
одна строка в конфигах и одна в композере
stranger-ru
@stranger-ru
Aug 21 2015 15:27
@censoredgit определяюсь, прочитал документацию, немного покодил, попробовал, сделал какие-то выводы, сделал кое-какие замеры производительности, прикидываю, вообщем еще думаю .
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:28
по скорости оно может и помедленнее, но зато максимально чистый и удобный код без каких-либо зависимсотей
т.к. зависимости можно самому поставить
stranger-ru
@stranger-ru
Aug 21 2015 15:28
Самое главное что очень много вопросов осталось после прочтения документации. Не получил ответов на многие вопросы после документации.
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:29
Yii только сейчас, например, это поняли и начали разносить всё на пакеты, надеюсь до 2.1 версии закончат свой демонтаж
@stranger-ru наверное потому что ты плохо её читал? =) Давай посмотрим, твой вопрос, а я буду кидать ссылку на доку ;)
stranger-ru
@stranger-ru
Aug 21 2015 15:30
@SerafimArts ну вот выше вопросы были, скидывал.. сейчас еще накидаю. ))
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:30
1:0 в твою пользу
в доках нет описания того, чего в них нет
stranger-ru
@stranger-ru
Aug 21 2015 15:30
Есть ли что-нибудь для REST?
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:30

Есть ли что-нибудь для REST?

Route::resource

Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:31
Route::resource сразу создаёт все нужные роуты для реста
alex
@eskrano
Aug 21 2015 15:31
Что такое рест?:\
stranger-ru
@stranger-ru
Aug 21 2015 15:32
@SerafimArts ок ))
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:32
@eskrano оно чекает все твои роуты и создаёт сериализованный файлик со всеми нужными данными
естественно оно ускоряет загрузку, т.к. происходит десериализация, а не полная сборка роутов, включая из пакетов
alex
@eskrano
Aug 21 2015 15:33
понял. А рест это что?:\
dencher
@dencher
Aug 21 2015 15:34
Други, покажите пример как авторизовать пользователя через VK/FB/Google и так далее. Вроде и провайдеров нашёл, и примеры читаю, а врубиться как применить — не пойму. Хотя бы для VK, там я уже нужные ключи/данные получил
https://vk.com/away.php?to=http%3A%2F%2Fsocialiteproviders.github.io%2Fproviders%2Fvkontakte%2F тут был, мало что понял. Пример бы...
stranger-ru
@stranger-ru
Aug 21 2015 15:35

Как сделать связь с дополнительными условиями, например есть таблица Post:

id, 
title,

и таблица Content:

id,
language_slug,
post_id,
content

можно ли сделать связь подобную этой:

public function content()
{
    return $this->hasOne('App\Content')->где_language_slug_равно('ru');
}

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

это просто пример, но такие ситуации бывают и часто
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:36
так и пиши
where('slug', 'ru')
неужели проверить сложно?
alex
@eskrano
Aug 21 2015 15:36
это как бы замена джойнам?
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:36
в зависимости от типа связи
либо двойной запрос со связью внутри лары, либо джоин
stranger-ru
@stranger-ru
Aug 21 2015 15:37
@SerafimArts да это я прямо сейчас с ходу придумал, в голове крутилось, но так и не попробовал. Ладно, это я уже от списка своего отошел.
Вообщем в связях можно указывать дополнительные условия для связи.
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:38
там много чего можно
стой
where вернёт билдер
а связь должна быть связью
так что этот where надо вынести в метод или скоуп чайилда
stranger-ru
@stranger-ru
Aug 21 2015 15:39
@SerafimArts да да, вот я тоже думал, но мне надо вроде в связи это объявить. Надо будет попробовать.
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:39
чтоб было: $some->content->slug('ru')
dencher
@dencher
Aug 21 2015 15:40
И scopeSlug не забыть описать
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:40
надо вынести в метод или скоуп чайилда
я уже это написал =)
dencher
@dencher
Aug 21 2015 15:40
А, чукча не читатель :)
В пяти текстах сижу, два ролика с ларакаста гляжу :)
stranger-ru
@stranger-ru
Aug 21 2015 15:41
@SerafimArts да, я видел, но вот как-то не очень в scope выносить,
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:41
скоупы для этого и предназначены как бы
stranger-ru
@stranger-ru
Aug 21 2015 15:42
конечно хотелось бы прямо в связи.. В yii2 например это возможно.
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:42
ну пиши в связи
только вызывай без скобок
и не забудь get в конце
stranger-ru
@stranger-ru
Aug 21 2015 15:42
@SerafimArts надо будет попробовать вообщем. Ладно, это я так достал с ходу.. потом попробую .
JhaoDa
@jhaoda
Aug 21 2015 15:43
@dencher что именно ты не понял?
dencher
@dencher
Aug 21 2015 15:44
@jhaoda, практически всё. Вот это return Socialite::with('vkontakte')->redirect(); откуда вообще должно вызываться?
Там даже пример есть
stranger-ru
@stranger-ru
Aug 21 2015 15:46

Не нашел в документации про Sql-иънекции, а именно смотрю во всех примерах просто подставляются значения переменных, вроде такого:

public function scopeSlug($query, $slug)
{
    $query->where('slug', $slug);
}

конечно вроде приходит понимание, раз в документации ничего про это не сказано, о наверное как-то решен этот вопрос выше. Но все таки, ничего не увидел, так оно ил инет.

Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:46
@dencher а где в ларке есть ретурн с редиректом? =)
stranger-ru
@stranger-ru
Aug 21 2015 15:46
This message was deleted
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:46
@stranger-ru там PDO внутри
JhaoDa
@jhaoda
Aug 21 2015 15:47
@stranger-ru товарищ, начните-ка с основ РНР
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:47
очевидно что аргументы прогоняются через статменты
alex
@eskrano
Aug 21 2015 15:47
http://prntscr.com/879npv чего такое ожилдание большое?
тАм только хелло вордл
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:47
хотя
stranger-ru
@stranger-ru
Aug 21 2015 15:47
@jhaoda а при чем здесь основы php?
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:47
да, всё верно
alex
@eskrano
Aug 21 2015 15:48
http://prntscr.com/879o6q а вот чистый пых файл. быстрей пашет
JhaoDa
@jhaoda
Aug 21 2015 15:48
@stranger-ru потому что PDO это тоже основы, в 2015-то году
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:48
@stranger-ru наверное потому что статменты pdo - это база
alex
@eskrano
Aug 21 2015 15:48
как сократить ожидание в ларе?
JhaoDa
@jhaoda
Aug 21 2015 15:48
@eskrano ты сначала напиши, что хочешь написать, а потом сокращай
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:48
@eskrano отключить лишние провайдеры, ненужные, отключить лишние миддлвари
поставить hhvm
поставить нгинкс как проксю на апач
alex
@eskrano
Aug 21 2015 15:49
у меня опенсерв :(
JhaoDa
@jhaoda
Aug 21 2015 15:49
Закэшировать конфиги и роуты
Но это даст не очень большое снижение времени отклика
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:50
проще взять и отлючить половину ядра :D
JhaoDa
@jhaoda
Aug 21 2015 15:50
@eskrano ты хотел, что бы фреймворк был таким же быстрым, как нэйтив?
alex
@eskrano
Aug 21 2015 15:50
не хотел. но 200мсек чет многовато
JhaoDa
@jhaoda
Aug 21 2015 15:50
@eskrano нормально
alex
@eskrano
Aug 21 2015 15:50
в уии больше на хелло ворлд?
JhaoDa
@jhaoda
Aug 21 2015 15:51
Возьми и проверь
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:51
200 мсек на шифрование кукисов, сессий, соединение с бд, анализ авторизации и километры остального - это много?
alex
@eskrano
Aug 21 2015 15:51
@SerafimArts хз
хотя нубский у меня вопрос
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:51
ну понятно что что-то будет быстрее
просто потому, что там этого нет
=)
stranger-ru
@stranger-ru
Aug 21 2015 15:53
@jhaoda PDO - это не значит, он сам все экранирует. В yii2 например тоже PDO, но при этом там очень много чего есть с SQL-инъекциями и передачей параметров пришедших от конечного пользователя из формы.
Если в PDO не используются методы prepare и execute то ничего не будет.
другое дело, что в laravel выше эти методы используются, тем самым избавляют разработчика заботиться об этом. Но в документации можно было пару слов про это написать.
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:58
@stranger-ru согласен
alex
@eskrano
Aug 21 2015 15:58
так юзать пдо без тех методов нет резона. Тот же mysqli будет выходить или даже допотопный мускл.
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 15:59
ну почему же
единый интерфейс
alex
@eskrano
Aug 21 2015 16:00
Мемкеш встроен ведь в лару с коробки? Или надо самому костылять чтоб попахивало?
JhaoDa
@jhaoda
Aug 21 2015 16:00
@eskrano у тебя и так попахивает, как сказали выше :)
alex
@eskrano
Aug 21 2015 16:01
@jhaoda я уже сделал через роут ресурс. Вроде не попахивает
JhaoDa
@jhaoda
Aug 21 2015 16:02
@eskrano возможность работы есть, но сервера, как ты, наверное, догадываешься, в комплекте нет:)
alex
@eskrano
Aug 21 2015 16:02
@jhaoda дык я о возможности работы и спрашиваю .
JhaoDa
@jhaoda
Aug 21 2015 16:03
@eskrano прочитай http://laravel.com/docs/5.1/cache, там всё написано
alex
@eskrano
Aug 21 2015 16:05
@jhaoda спс
stranger-ru
@stranger-ru
Aug 21 2015 16:07
Еще очень хочется пару вопросов задать, связанных с панелью SleepingOwl Admin, я недолго ее ковырял, просьба не пинать:
Там есть поля загрузки и мультизагрузки изображений. В документации к ней ничего не нашел. Можно ли управлять размещением загружаемых изображений из этого поля формы, ресайзить их. Можно ли несколько ресайзов делать при загрузке?
Т.е например загружаю из этого поля изображение и говорю, сделай ресайзы этого изображения 100x100 и положи в папку /uploads/100_100, 200x200 и положи в папку /uploads/200_200, оригинал в /uploads?
stranger-ru
@stranger-ru
Aug 21 2015 16:14
вот эти поля формы:
alt
Maxim Kot
@batFormat
Aug 21 2015 16:36
composer require sleeping-owl/admin:2.x
Выдеёт
alt
В чем беда?
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 16:39
какая беда?
ааа
JhaoDa
@jhaoda
Aug 21 2015 16:39
@batFormat у меня всё ок
Maxim Kot
@batFormat
Aug 21 2015 16:39
Вот я и думаю, что только у меня...
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 16:39
у него конфликт версий
возможно ветка отличается
stranger-ru
@stranger-ru
Aug 21 2015 16:43
да, чего-то стоп-чат произошел.
Не знаю остался мой вопрос или нет:
@stranger-ru
Еще очень хочется пару вопросов задать, связанных с панелью SleepingOwl Admin, я недолго ее ковырял, просьба не пинать:
Там есть поля загрузки и мультизагрузки изображений. В документации к ней ничего не нашел. Можно ли управлять размещением загружаемых изображений из этого поля формы, ресайзить их. Можно ли несколько ресайзов делать при загрузке?
Т.е например загружаю из этого поля изображение и говорю, сделай ресайзы этого изображения 100x100 и положи в папку /uploads/100_100, 200x200 и положи в папку /uploads/200_200, оригинал в /uploads?
вот эти поля формы:
alt
опять заглючило что-ли? Есть кто?
JhaoDa
@jhaoda
Aug 21 2015 16:52
@stranger-ru не копипастить надо, а чат обновлять, что бы узнать, осталось твое сообщение или нет
alex
@eskrano
Aug 21 2015 17:08
В какие сроки можно сделать что - то похожее на tiwar.ru только на ларе? У них симфония вроде юзается
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 17:11
от одного часа до пары лет
alex
@eskrano
Aug 21 2015 17:11
как за час?:D ну есть в пабле убогие копии ...
той "игры"
я на них во время каникул 7к гривен поднял. Жаль что уже не актуал
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 17:12
а эта твоя игра убогая копия самой первой
alex
@eskrano
Aug 21 2015 17:12
Неа
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 17:12
бойцовский клуб называется
да
alex
@eskrano
Aug 21 2015 17:12
ахах дай ссылку
2002 год
alex
@eskrano
Aug 21 2015 17:13
Ну текстовик
но титаны то не то
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 17:13
пофигу
что одно фигня, что другое
alex
@eskrano
Aug 21 2015 17:14
ну да. Но в первой донат овер 40к в день.
JhaoDa
@jhaoda
Aug 21 2015 17:14
О, точняк, у меня друзья зависали в неё
alex
@eskrano
Aug 21 2015 17:14
говорю пока нубо копия моего знакомого была актуал, то мы рубили бабки. Зимой этого года.
symbios_zi
@symbiosss
Aug 21 2015 17:27
всем привет. Кто нибудь mongoDB прикручивал к laravel?
поясню: ищу решение как организовать каталог товаров с разными свойствами. Пока знаю один вариант - EAV, есть ли еще решения? Прочел что EAV + nosql будет хорошим решением
projct1
@projct1
Aug 21 2015 17:47

http://laravel.com/docs/5.1/filesystem

тут все функции перечислены для работы с файлами и папками?

Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 17:48
нет конечно
projct1
@projct1
Aug 21 2015 17:48
а где полный список?
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 17:48
в исходниках
projct1
@projct1
Aug 21 2015 17:49
и почему когда я юзаю \Storage::files() , то как неопределённая функция в PHPStorm ?
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 17:49
потому что этот метод проксируется
и создаётся в рантайме
а физически его не существует
JhaoDa
@jhaoda
Aug 21 2015 17:50
@rorc потому что нельзя так писать. Нужно писать \Storage::disk('disk_name')->files();
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 17:50
уверен? рорк не говорил что оно не работает
projct1
@projct1
Aug 21 2015 17:51
да, работает то работает
@jhaoda да, если через диск, то всё чётко)
@jhaoda а можно задать диск по умолчанию чтобы он автоматом подставлялся и все методы видны были?))
JhaoDa
@jhaoda
Aug 21 2015 17:52
Хм, тогда это Ide-helper коряво работает
alex
@eskrano
Aug 21 2015 17:52
Сколько ОЗУ надо для шторма чтоб не лагал?
JhaoDa
@jhaoda
Aug 21 2015 17:52
М-да... \Storage::put() валидно, а шторм не понимает
alex
@eskrano
Aug 21 2015 17:52
4гб есть а лагает. Атом также лаги ... но поменьше .
projct1
@projct1
Aug 21 2015 17:52
@jhaoda ага, и так ко всем методам
JhaoDa
@jhaoda
Aug 21 2015 17:53
@rorc значит у тебя ide-helper вообще не стоит
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 17:53
@eskrano желательно поменьше, но не слишком мало
я серьёзно
лаги из-за чистки хепа
projct1
@projct1
Aug 21 2015 17:53
@jhaoda стоит
alex
@eskrano
Aug 21 2015 17:53
@SerafimArts так комп взлетает при шторме
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 17:53
чем больше оперативы чистит GC, тем больше тормоза
alex
@eskrano
Aug 21 2015 17:53
ну он попахивает HP630 ... но я в гта5 играл на нем даже и норм было ..
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 17:54
так что выделяя дофига оперативы можно нарваться на километровый фриз
ну или не нарваться вообще
короче сам тюнингуй и смотри
тут однозначного ответа нет
alex
@eskrano
Aug 21 2015 17:54
так что делать чтоб он без лагов работал то? Вин7 стоит :с
projct1
@projct1
Aug 21 2015 17:55
@jhaoda набираю php artisan ide-helper:generate и всё равно не показывает ((
JhaoDa
@jhaoda
Aug 21 2015 17:55
@rorc http://i.imgur.com/UCWm7Bu.png
projct1
@projct1
Aug 21 2015 17:56
@jhaoda ну так это у меня самого показывает, ты попробуй найти метод files или delete например, подстветит тебе их IDEшка?
JhaoDa
@jhaoda
Aug 21 2015 17:57
@rorc я же тебе сказал, это ide-helper не смог понять, что и кого вызывает. Ты же мне говоришь, что «ага, и так ко всем методам»
projct1
@projct1
Aug 21 2015 17:58
@jhaoda можно настроить чтобы понимал?
JhaoDa
@jhaoda
Aug 21 2015 17:58
@rorc без понятия
Можно руками их добавить, но смысл?
Вернее, я не вижу смысла, потому что не юзаю Storage :)
Кому надо — конфиг ide-helper'а поможет
projct1
@projct1
Aug 21 2015 18:01
@jhaoda а что юзаешь?)
JhaoDa
@jhaoda
Aug 21 2015 18:02
Ничего не юзаю
projct1
@projct1
Aug 21 2015 18:02
:(
calebwhites
@calebwhites
Aug 21 2015 18:02
Hey am I doing this right? print " <style type = \"text/css\">\n"; print " body {\n"; print " padding-top: 0px;\n"; print " background-image: url(background.jpg);\n"; print " }\n"; print " .panel-login {\n"; print " border-color: #ccc;\n"; print " -webkit-box-shadow: 0px 2px 3px 0px rgba(0,0,0,0.2);\n"; print " -moz-box-shadow: 0px 2px 3px 0px rgba(0,0,0,0.2);\n"; print " box-shadow: 0px 2px 3px 0px rgba(0,0,0,0.2);\n"; print " }\n";
JhaoDa
@jhaoda
Aug 21 2015 18:02
@calebwhites it's russian chat about Laravel PHP framework
calebwhites
@calebwhites
Aug 21 2015 18:03
Translate my English then?
Nevermind
JhaoDa
@jhaoda
Aug 21 2015 18:03
@calebwhites not frontend, nor CSS
projct1
@projct1
Aug 21 2015 18:04
да это прикол)
projct1
@projct1
Aug 21 2015 18:23
хочу сделать автоматическую кнопку вернуться, например если я нахожусь на /admin/property/1/edit => чтобы формировалась ссылка на /admin/property и тд
URL::previous() не подходит, так как в случае обновления страницы возвращает текущую страницу
одним словом Route::currentRouteName() тока без экшена
jongleb
@jongleb
Aug 21 2015 19:50
Ребят как такую не здравую вещь каждый раз не писать isset($request->is_deleted)
понятно что тут я првоеряю чекнт поле или нет
потому что если оно нечекнуто то не приходит 0
а оно просто не приходит
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 19:52
php7+ онли
$result = $request->is_deleted ?? $some
jongleb
@jongleb
Aug 21 2015 19:53
Во всех остальных случаях isset($request->is_deleted)?$request->is_deleted=1:$request->is_deleted=0; ?
ЧТобы $request->all()
отработал
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 19:53
а зачем тебе из делитед?
встроенный deleted_at не подходит?
jongleb
@jongleb
Aug 21 2015 19:54
Ну в общем то я исполоьзую не свою бд скажем так
я лишь пользуюсь ей
как бы поля уже вот какие есть такие есть
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 19:55
ну навесь тогда скоуп =)
или не
или да
скоуп, который по дефолту возвращает is_deleted = 0
*глобальный скоуп
jongleb
@jongleb
Aug 21 2015 19:56
Это что за скоп
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 19:56
этот софт делитинг так работает
This message was deleted
This message was deleted
не
посмотри короче как работает этот софт делитинг
он навешивает скоуп
и добавляет методы, которыми его можно снимать
jongleb
@jongleb
Aug 21 2015 19:59
Нукась ща посомтрю спасибо
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:00
ну короче я к тому, что по дефолту у тебя полуится выборка всех не удалённых
а при, например, $some->onlyDeleted() выбираются только удалённые
это то каро
ч
да?
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:02
тогда сократишь код до:
if ($request->get('is_deleted', false)) {
   $query = $query->onlyDeleted();
}
jongleb
@jongleb
Aug 21 2015 20:02
Во класс тогда
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:02
нет
глобал скоуп
это другое
это кусок запроса, который автоматом встраивается в абсолютно все запросы на модель
jongleb
@jongleb
Aug 21 2015 20:03
аа вот как
это ка rootScope в ангуляре
понял
а это типа местный
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:04
запрос в данном случае будет is_deleted = 0
только отключаемый, когда надо
jongleb
@jongleb
Aug 21 2015 20:05
Стоп
речь то не о гете
идет
а о обновлении
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:05
эээ
давай заново тогда =)
jongleb
@jongleb
Aug 21 2015 20:05
Это типа админка
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:05
и?
jongleb
@jongleb
Aug 21 2015 20:05
тут кароче помечаешь
на удаление
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:05
и?
$request - это объект реквеста
jongleb
@jongleb
Aug 21 2015 20:06
ну я понял что вместе where у меня кароче просто свой отделбный дефолт будет
ну дада
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:06
ну
jongleb
@jongleb
Aug 21 2015 20:06
не ну это я так на всякий сказал
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:06
ты получаешь аргумент удалять или нет
или что?
jongleb
@jongleb
Aug 21 2015 20:07
Да
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:07
ну
jongleb
@jongleb
Aug 21 2015 20:07
вернее я его не получаю т.к 0 приходит если он не подлежит удалению
ну я понял
я пишу
тока как бы функцию
деолтную
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:07
if ($request->get('is_deleted', false)) {
  $item->delete();
}
ну или не ->delete() а обновление чего там у тебя
jongleb
@jongleb
Aug 21 2015 20:08
if ($request->get('is_deleted', false)) { $item->delete(); } В данном случае же не имется ввиду false как значение
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:08
это дефолтное
если нету is_deleted аргумента
jongleb
@jongleb
Aug 21 2015 20:10
Опять таки получится к чему я пришел
if ($request->get('is_deleted', false)) {
$request->is_delete=0;
}
Потому что он не удаляется он помечается
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:10
зачем тебе опять в реквест что-то всовывать?
jongleb
@jongleb
Aug 21 2015 20:10
update($request->all())
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:10
втф
jongleb
@jongleb
Aug 21 2015 20:10
для этого
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:11
это опасно
jongleb
@jongleb
Aug 21 2015 20:11
Или забить на этого
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:11
прилетит что-то то ещё и гг
например id
jongleb
@jongleb
Aug 21 2015 20:11
А как же валидация
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:11
ну это да
но лишний аргумент просто не провалидируется
там есть конечно возможность обрезать аргументы
но всё равно
jongleb
@jongleb
Aug 21 2015 20:12
Справедливо пойду сделаю тогда распишу каждое из полней
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:13
так лучше :
->update([
    'is_deleted' => (int)!!$request->get('is_deleted', 0)
]);
пусть и не особо красиво и может вылиться в километр кода
но зато точно будет всё надёжно
jongleb
@jongleb
Aug 21 2015 20:16
Я ксати поясню почему я так не хочу их все раписать и сократить то all. Это собственно второй вопрос который дерзает меня. У меня с одной формы уходят как бы несколько айтемов. Айтем редактируемый именно как бы е основной и тут же массив из айтемов из связанной таблицы.так вот когда приходит этот массив (а он может и вовсе не прийти) происходит вот такой зашквар if($request->ExchangePaymentGateways)//Его ведь могла не быть{
foreach ($request->SomeRelationItems as $item){ и тут кароче этот айтем из кучи полей состоит и вниз так конкретно код растягивается.И главное ведь all не сделаешь.Тк класс реквеста от основого же айтема идет. Как быть? какой нибудь слой придуман для выкидывания этого туда?
Если только в js невидимую форму создавать и перенапрвлять их на свой контроллер
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:18
я тебя вообще не понял
=)
сократить до all можно конечно
там вроде есть except
или exclude
методы
короче
метод, который урезает все аргументы до тех, которые тебе нужны
jongleb
@jongleb
Aug 21 2015 20:19
Ну ведь тут как бы не "родной контроллер"
Вернее не так
Request класс не родной
rules не от их
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:19
Request не симфонийский?
и что за рулес
Oleg
@Malezha
Aug 21 2015 20:20
Эээ, видимо он о FormRequest
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:20
я сдаюсь
@Malezha перенимай вахту
=)
jongleb
@jongleb
Aug 21 2015 20:21
Нее не понял вот у этих айтемов $request->rules объявляется Request классом не их
Тк они приходят то в контроллер где Request класс для основго айтема
Я чушь несу да кароч?
Oleg
@Malezha
Aug 21 2015 20:22
Давай по порядку, $request instanceof ?
jongleb
@jongleb
Aug 21 2015 20:22
Типа Текущего айтема
projct1
@projct1
Aug 21 2015 20:22
кто-нибудь пользуется конструкцией @each в шаблонах?
jongleb
@jongleb
Aug 21 2015 20:22
ну блин для того на который контроллер
и реквест юзается
JhaoDa
@jhaoda
Aug 21 2015 20:23
$request instanceof TipaTekucshiyAitem
:)
jongleb
@jongleb
Aug 21 2015 20:23
YES
Oleg
@Malezha
Aug 21 2015 20:23
У меня почему то нет слов
jongleb
@jongleb
Aug 21 2015 20:24
ну кроме шуток ты хочешь сказать не понял что я имею ввиду?
projct1
@projct1
Aug 21 2015 20:24
В качестве четвёртого параметра надо передавать путь к шаблону, если массив пуст. Передавать обычный текст туда нельзя ((( Если мне надо просто написать картинок нет, не создавать же для этого отдельный шаблон-файл? Как исправить данное упущение?
JhaoDa
@jhaoda
Aug 21 2015 20:25
@jongleb ответь на вопрос, для начала
Oleg
@Malezha
Aug 21 2015 20:26
@jongleb я абсолютно не понял, с каким реквестом ты работаешь. Я к сожалению знаю только два Illuminate\Foundation\Http\FormRequest и Illuminate\Http\Request.
У первого есть rules
jongleb
@jongleb
Aug 21 2015 20:27
И я знаю два. А еще есть те которые расширяют абстрактный Illuminate\Http\Request
Так вот функция rules
JhaoDa
@jhaoda
Aug 21 2015 20:28
:)
jongleb
@jongleb
Aug 21 2015 20:28
У каждого своя
JhaoDa
@jhaoda
Aug 21 2015 20:28
пздц...
jongleb
@jongleb
Aug 21 2015 20:28
Я про это
наследников
Artemy
@lartie
Aug 21 2015 20:29
Как тут относятся к вопросам не по теме? Нормально вообще?)
JhaoDa
@jhaoda
Aug 21 2015 20:30
@artemiydeveloper кто как
Oleg
@Malezha
Aug 21 2015 20:31
@jongleb кажись я тебя понял. У тебя на один экшен идет в одном запросе сразу куча параметров, которые должны обрабатывать другие экшены?
jongleb
@jongleb
Aug 21 2015 20:32
Ага
Я и говорю есть ли какой то класс для работы с этим, я же не могу меж контроллерами их передавать
Oleg
@Malezha
Aug 21 2015 20:33
@jongleb ну так не храни логику в контроллерах.
Artemy
@lartie
Aug 21 2015 20:33
Рискну. Всё обыскал, сижу больше суток с проблемой уже. Нужно на Semantic ui добавлять динамически popup элементы с уникальным контентом. Но семантик не видит элементы если они создаются динамически, как можно обновить данные dom? Или что нужно сделать? Я вообще не понимаю почему так просиходит.
jongleb
@jongleb
Aug 21 2015 20:33
@Malezha Я и хотел услышать совет где ее хранить
Предусмотрен ли может самим laravel такой класс?
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:34
какой?
о_0
jongleb
@jongleb
Aug 21 2015 20:35
Ну который позволяет логику из контроллера вынести
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:35
ты тролль? =)
jongleb
@jongleb
Aug 21 2015 20:35
Серафим меня сдерживает только тот фактор что я задаю вопрос
))
и еще не раз придется
поэтому можешь застилать тут что то
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:36
ну ок, контроллеры придуманы для того, чтоб хранить логику
jongleb
@jongleb
Aug 21 2015 20:36
@jongleb ну так не храни логику в контроллерах.
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:36
ты спрашиваешь, есть ли в ларке класс, куда можно перенести эту логику
jongleb
@jongleb
Aug 21 2015 20:36
Тогда видимо он тролль
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:36
контроллеры
карл
модели
создай свой, если ты считаешь что оно не там должно быть
Oleg
@Malezha
Aug 21 2015 20:37
Фабрики, если любим.
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:37
во, фабрики, как вариант
фэктори
jongleb
@jongleb
Aug 21 2015 20:38
Я хотел услышать от вас класс job, я почему то хотел сказать про него но думал наш диалог был бы длиннее
Oleg
@Malezha
Aug 21 2015 20:38
Встроенный - Jobs, но это немного специальная штучка, она ничего не возвращает.
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:39
джобы - это вообще задачи
для крона или очередей
JhaoDa
@jhaoda
Aug 21 2015 20:40
Не обязательно
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:40
ну да
Oleg
@Malezha
Aug 21 2015 20:40
Может выполняться и в самом запросе, но тогда это больше походит на event
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:40
но это основное назначение
опять же всё зависит от требований
JhaoDa
@jhaoda
Aug 21 2015 20:40
Даже трейт придуман DispatchesJobs
Который изначально в контроллере присутствует
@Malezha Job может возвращать что-либо
jongleb
@jongleb
Aug 21 2015 20:42
Кароче два варианта : 1) Забить и оставить этот форич в ифе в этом контроллере, на мой взгляд не относящимся к этим данным(может быть я конечно SOLID не так понимаю) 2)Фабрику использовать причем тоже как лучше просто войдом чтоба она все сделала незаметно или вернуть что то?
Oleg
@Malezha
Aug 21 2015 20:43
@jhaoda как? Ну если не считать своего состояния.
JhaoDa
@jhaoda
Aug 21 2015 20:43
@Malezha трейт DispatchesJobs и метод handle в самой задаче
Oleg
@Malezha
Aug 21 2015 20:44
Сейчас гляну
JhaoDa
@jhaoda
Aug 21 2015 20:44
Понятно, что это имеет смысл только для самообрабатывающихся задач
Oleg
@Malezha
Aug 21 2015 20:48
@jhaoda скажу честно, у меня все jobs в очередях, так что даже не подозревал о таком функционале.
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 20:50
я тоже
+1 в карму Великому
JhaoDa
@jhaoda
Aug 21 2015 20:52
Да вы чо, посоны
alex
@eskrano
Aug 21 2015 20:53
я плюсану + хоть и нуб :)
NickPanda
@NickPanda
Aug 21 2015 20:56
Да я очень сильно ошибался, ini_get() безопасная функция Извиняюсь!
JhaoDa
@jhaoda
Aug 21 2015 20:58
Человек сам придумал проблему, потом сам её решил. Настоящий комсомолец!
NickPanda
@NickPanda
Aug 21 2015 20:59
@jhaoda Спасибо )
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 21:33
хмхм, мейджик
$file === UploadedFile
$file->move('dir', 'name');
вылетает ошибка
Symfony \ Component \ HttpFoundation \ File \ Exception \ FileNotFoundException
The file "C:\Users\Serafim\AppData\Local\Temp\phpCB70.tmp" does not exist
прав нет чтоль для загрузки в темп дир?
иначе сфигали там нет этого файла
загрузка в одном реквесте, если что
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 21:42
ппц
is_file($file->getPathname()) // true
новая ошибка
Symfony \ Component \ HttpFoundation \ File \ Exception \ AccessDeniedException
The file C:\Users\Serafim\AppData\Local\Temp\phpE8F3.tmp could not be accessed
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 21:53
запустил от админа
та же фигня
поменял в php.ini путь на локальный для темпа (в папочке с пыхом, рядом)
тоже самое
Alexander
@modder2
Aug 21 2015 21:57
Ребят, у кого-нибудь есть литература, документация по Laravel 4 в формате для электронной читалки: epub, fb2, pdf?
Kirill Nesmeyanov
@SerafimArts
Aug 21 2015 22:02
о, нашёл ошибку
вызывал getMimeType() у UploadedFile
а надо только после перемещения у File