These are chat archives for LaravelRUS/chat

9th
Aug 2017
nejtr0n
@nejtr0n
Aug 09 2017 07:02
@opensgame Попробуйте расширить SplFileInfo своим функционалом. Имхо проще будет
http://php.net/manual/ru/class.splfileinfo.php
Anton Vorontsov
@symbios-zi
Aug 09 2017 07:11
@opensgame как сложно то все у тебя
SanyaSPY
@SanyaSPY
Aug 09 2017 07:11
Всем привет, подскажите есть ли нормальное описание с примерами по написанию емайла на Markdown?
KarmaBot
@KarmaBot
Aug 09 2017 07:11
@SanyaSPY и тебе не хворать :)
SanyaSPY
@SanyaSPY
Aug 09 2017 07:15
@symbios-zi это я уже смотрел
Anton Vorontsov
@symbios-zi
Aug 09 2017 07:16
@SanyaSPY ну куда больше то?
SanyaSPY
@SanyaSPY
Aug 09 2017 07:16
@symbios-zi хотелось что то более детально с примерами
JhaoDa
@jhaoda
Aug 09 2017 07:25
@SanyaSPY дока по маркдауну
opensgame
@opensgame
Aug 09 2017 10:52
@oldpunk не название должно быть без точек
тут же есть проверка по mime типу $info = finfo_open(FILEINFO_MIME_TYPE );
Oleg Arkhipov
@Oleg-Arkhipov
Aug 09 2017 11:09
@opensgame чем не подходят встроенные ларавеловские правила валидации image и mimes:?
Andrei Sosnov
@atehnix
Aug 09 2017 11:27
@Oleg-Arkhipov в них есть фатальный недостаток, очевидно)
opensgame
@opensgame
Aug 09 2017 11:32
Когда отправляю файлы через post button submut то получаю файлы в виде

Когда отправляю файлы через post button submut то получаю файлы в виде

[files] => Array
        (
            [0] => Illuminate\Http\UploadedFile Object
                (
                    [test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 
                    [originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => desktop.ini
                    [mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => application/octet-stream
                    [size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 426
                    [error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0
                    [hashName:protected] => 
                    [pathName:SplFileInfo:private] => /tmp/phpgZHQEt
                    [fileName:SplFileInfo:private] => phpgZHQEt
                )

        )

но когда отсылаю их через XMLHttpRequest то $request->file() ничего не выдёт
может кто то знает рабочий пример какой то?

Oleg Arkhipov
@Oleg-Arkhipov
Aug 09 2017 11:38
@opensgame гугл точно знает. И как ты отправляешь их?
opensgame
@opensgame
Aug 09 2017 11:38
@Oleg-Arkhipov
formData.append('file', data['files'][0]);
xhr.send(formData);
Oleg Smirnov
@soeOleg
Aug 09 2017 11:41
@opensgame xhr.setRequestHeader("Content-Type","multipart/form-data") ?
opensgame
@opensgame
Aug 09 2017 11:52
@soeOleg и это пытался ставить
Oleg Smirnov
@soeOleg
Aug 09 2017 11:58
а что в $request
opensgame
@opensgame
Aug 09 2017 11:59
@soeOleg ты об этом Request $request ?
Oleg Smirnov
@soeOleg
Aug 09 2017 12:00
да
opensgame
@opensgame
Aug 09 2017 12:04
@soeOleg $request->all() что то выводит
а вот request->allFiles() и $request->file() и $_FILES ничего
Oleg Smirnov
@soeOleg
Aug 09 2017 12:06
@opensgame что-то покажи, что выводит
Kirill Nesmeyanov
@SerafimArts
Aug 09 2017 12:09
метод точно POST?
opensgame
@opensgame
Aug 09 2017 12:12
изображение.png
@soeOleg уже ничего не выводит, да метод Request Method:POST
formData = new FormData();
formData.append('files', data['files'][0]);
xhr.send(formData);
вот оно как бы отправляет что то но почему то содержимого нету, хотя название файла видит
Oleg Smirnov
@soeOleg
Aug 09 2017 12:14
@opensgame $request->all() что то выводит. Можешь показать?
opensgame
@opensgame
Aug 09 2017 12:14
@soeOleg ничего array()
Oleg Arkhipov
@Oleg-Arkhipov
Aug 09 2017 12:15
@opensgame а почему у тебя контент тайп октет стрим, а не форм дейта? (или это норм, я не так хорошо шарю)
opensgame
@opensgame
Aug 09 2017 12:16
@Oleg-Arkhipov да не стоит multipart/form-data
Kirill Nesmeyanov
@SerafimArts
Aug 09 2017 12:17
content length может битый...
Oleg Smirnov
@soeOleg
Aug 09 2017 12:18
покажи свою отправку
opensgame
@opensgame
Aug 09 2017 12:21
@soeOleg
 function sendFile(url,data,funct=false){
var filesInput=document.getElementById('filesInput');
        console.log(data)
        formData = new FormData(data);
        formData.append("fil",filesInput.files[0]);
       // for (var i = 0, file; file = data['files'][i]; ++i) {
        //    console.log(file)
           // formData.append('files', data['files'][0]);
       // }
        //formData.append('_token', document.getElementById("csrf_token").content);
        xhr = new XMLHttpRequest();
        xhr.open("POST", url, true)
        var boundary=Math.random().toString().substr(2);

        xhr.setRequestHeader("Content-Type", "multipart/form-data");
        xhr.onreadystatechange =function (e) {
            if (xhr.readyState == 4)
                if(xhr.status == 200)
                    if(funct!=false){
                        window[funct](e);
                    }
                    else{
                        window['statuc'](e);
                    }

        }
        xhr.progress=function(e){console.log(e);}

        xhr.send(formData);
    }
KarmaBot
@KarmaBot
Aug 09 2017 12:21
@opensgame, чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
Oleg Smirnov
@soeOleg
Aug 09 2017 12:29
@opensgame у тебя контроллер в api?
SanyaSPY
@SanyaSPY
Aug 09 2017 13:31
Подскажите как заменить хедер и футор в письме Markdown?
PhpNet
@PhpNet
Aug 09 2017 13:47

Приветствую. Можно ли как то сделать массовый updateOrCreate в елке?
Предположим, у меня есть массив вида

[
  [
    ['id'=>1], ['title'=>test1']
  ],
 [
    ['id'=>2], ['title'=>test1']
 ]
]

и т.д. Записей может быть достаточно много, до нескольких тысяч. Дергать в цикле updateOrCreate как то не тру

KarmaBot
@KarmaBot
Aug 09 2017 13:47
Не узнал тебя, @PhpNet. Богатым будешь :)
Alexander
@spartaque
Aug 09 2017 15:14
@PhpNet ну так попробуй updateOrCreate, если не получиться - значит нельзя:)
PhpNet
@PhpNet
Aug 09 2017 15:23
@spartaque ну самим updateOrCreate низя, уже в принципе накорябал генератор sql'я...
теперь воюю с https://github.com/lazychaser/laravel-nestedset - затирает parent_id, вообще хз пока куда копать
Artem Tomshin
@tweaker
Aug 09 2017 15:27

Всем доброго! Проблема с получением параметра с рекеста, который был добавлен в реквесте в методе rules:

public function rules()
{
    ...
    $this->merge(['type' => $type]);
    ...
}

Пытаюсь в контроллере получить:

$request->all();             // array:2 [
                             //   "msg" => "dsf"
                             //   "type" => "text"
                             // ]
$request->all()['type'];     // "text"
$request->get();             // null

В чем может быть проблема? Как свойство правильно добавть в запрос?

Dave
@aios
Aug 09 2017 15:28
Что то мне подсказывает что никак)
Artem Tomshin
@tweaker
Aug 09 2017 15:28
@aios печаль печаль
Dave
@aios
Aug 09 2017 15:29
Но что то мне подсказывает
что есть метод add
$request->request->add(['plan' => $plan]);
либо put
ибо судя по всему merge возвращает новую коллекцию
проверять я этого конечно не буду
и не врать по этому поводу тоже
мы получаем новую коллекцию
а каким макаром она у тебя сохраняется в реквесте а?
Alexander
@spartaque
Aug 09 2017 15:32
@tweaker эта проблема обсуждалась, решили что нужно смириться:) работает с $request->input('param')
Dave
@aios
Aug 09 2017 15:32
@spartaque не неси ерунды пожалуйста
@tweaker вопрос только один
зачем логика в реквесте?
Artem Tomshin
@tweaker
Aug 09 2017 15:34
@aios логично, сам уже не помню по какой причине туда его запихал
Alexander
@spartaque
Aug 09 2017 15:34
@aios а причем тут коллекция к реквесту?
как мне помниться реквест то MessageBag
Dave
@aios
Aug 09 2017 15:35
а от чего наследуется MessageBag?
Alexander
@spartaque
Aug 09 2017 15:35
@aios ни отчего
Dave
@aios
Aug 09 2017 15:36
эм.. так стопе какой нахрен messageBag?
Artem Tomshin
@tweaker
Aug 09 2017 15:36
@aios а нужна там логика, так как мне может прийти разного типа сообщение, текстовое либо с вложением и тд. мне нужно по типу рулезы возращать
Dave
@aios
Aug 09 2017 15:36
Это респонз
@tweaker рулезы по типу и дополнять реквест?
Artem Tomshin
@tweaker
Aug 09 2017 15:37
@aios и до какого то момета мердж работал: https://laravel.com/api/5.4/Illuminate/Foundation/Http/FormRequest.html#method_merge
@aios ну да
просто вся валидация по договоренности в реквест классах должна быть
Dave
@aios
Aug 09 2017 15:39
@spartaque о части ты прав - это не месседжбег
ParametrBag
но у него нету merge
add
Artem Tomshin
@tweaker
Aug 09 2017 15:45
что то не добавляет
$this->request->add([
     'type' => $type
]);
Alexander
@spartaque
Aug 09 2017 15:47
@aios Он есть в Illuminate\Http\Request, которые строится на основе Symfony\Component\HttpFoundation\Request, который и есть Symfony\Component\HttpFoundation\ParameterBag
@aios проблема в том, как работает get(), input(), и магический доступ к параметру через свойство $request
Artem Tomshin
@tweaker
Aug 09 2017 15:49
@spartaque он работал через get
@spartaque и сейчас работает в продакшене, может что то обновлили
Alexander
@spartaque
Aug 09 2017 15:52
@tweaker у меня вообще 5.2:)
Artem Tomshin
@tweaker
Aug 09 2017 15:52
@spartaque в продакшене 5.4.27 на локал 5.4.28
Alexander
@spartaque
Aug 09 2017 15:53
@tweaker ну так откатись, проверь, это же не сложно:)
блин, меня этот ржущий смайл уже бесит
Artem Tomshin
@tweaker
Aug 09 2017 15:59
@spartaque что то уже не понимаю не чего, мистика, и тут null
Alexander
@spartaque
Aug 09 2017 16:00
@tweaker скорей всего на проде тоже не работает
Artem Tomshin
@tweaker
Aug 09 2017 16:02
@spartaque да нет, type сохраняется… думаю что делать all()[’type’] или искать в чем причина, что не охота очень
opensgame
@opensgame
Aug 09 2017 16:03
@soeOleg app/http/controlers обычный контролер
Alexander
@spartaque
Aug 09 2017 16:05
@tweaker ->input() работает
Artem Tomshin
@tweaker
Aug 09 2017 16:05
@spartaque input да
$this['type'] = $type; за места мерджа аналогичная ситуация… ладно смирились раз смирились
Dinar Garipov
@garf
Aug 09 2017 16:49
Какой метод для регистрации фасада?
KarmaBot
@KarmaBot
Aug 09 2017 16:51
Приветствую тебя, @bigperson!
equentor
@equentor
Aug 09 2017 18:34
Ребята, почему ларавель пытается отправить письмо на адрес из конфига (на hello@example.com), когда я в метод Mail::to() передаю нужную мне строку адреса? Почему игнорит?
KarmaBot
@KarmaBot
Aug 09 2017 18:34
@equentor, и тебе привет ;)
sx000
@sx000
Aug 09 2017 18:37
Всем привет пытаюсь исправить проблему миграции https://laravel-news.com/laravel-5-4-key-too-long-error , но проблема втом что я делаю это патч, стираю все из базы включаю миграционную таблицу ну и по новой пытаюсь накатить миграции и он снова упорно пишет эту ересь
KarmaBot
@KarmaBot
Aug 09 2017 18:37
@sx000, здравствуй.
sx000
@sx000
Aug 09 2017 18:38
[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table users add unique users_email_unique(email))
[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
Kirill Nesmeyanov
@SerafimArts
Aug 09 2017 18:39
@sx000 ты делаешь что-то не так
ибо это исправление - работает
sx000
@sx000
Aug 09 2017 18:39
Привет Кирил, сейчас покажу патч
KarmaBot
@KarmaBot
Aug 09 2017 18:39
@sx000, и тебе привет ;)
sx000
@sx000
Aug 09 2017 18:40
http://www.heypasteit.com/clip/0IIQIO вот содрежание файла патченного
Kirill Nesmeyanov
@SerafimArts
Aug 09 2017 18:41
@sx000 ну значит сделай dd и проверь стартует ли boot
sx000
@sx000
Aug 09 2017 18:41
эта надпись только при миграции у меня
я до DD не добрался еще, такак миграции сделать толком не могу
это artisan пишет в консоле же
projct1
@projct1
Aug 09 2017 20:03

подскажите плз по правилу валидации
надо проверить если запись в таблице, и одновременно не равняется ли значению поля:

'to_order_id' => ['nullable', Rule::exists('orders', 'id')->whereNot('id', 'from_order_id')],

то есть значение to_order_id должно быть таким же с полем id в orders и оно не должно равняться from_order_id из реквеста

пробую и так, всё равно не работает
'to_order_id' => ['nullable', Rule::exists('orders', 'id')->whereNot('id', $this->input('from_order_id'))],
projct1
@projct1
Aug 09 2017 20:09
и так
'to_order_id' => ['nullable', Rule::exists('orders', 'id')->where(function($Q) {
        $Q->where('id', '<>', $this->input('from_order_id'));
})],
всё равно пропускает валидацию
Oldy
@oldy777
Aug 09 2017 20:57
@opensgame вообще ты можешь использовать просто валидатор
sx000
@sx000
Aug 09 2017 22:18
кому интересно проблему решил через смену кодировок в конфиг файле, просто убрал mb в названиях кодировок. Патч не работает из оф документации, даже при смене версии php на более высокую, скажем 7
JhaoDa
@jhaoda
Aug 09 2017 22:22
@sx000 патч прекрасно работает, и версия РНР тут совершенно ни при чем
@sx000 а «mb в названиях кодировок» это что-то типа utf8mb4?
Kirill Nesmeyanov
@SerafimArts
Aug 09 2017 22:27
угу, он решил забить на поддержку utf-8
JhaoDa
@jhaoda
Aug 09 2017 22:30
@SerafimArts эмодзи, если точнее
utf-8 это не обязательно 4 байта на символ
Kirill Nesmeyanov
@SerafimArts
Aug 09 2017 22:50
да