These are chat archives for LaravelRUS/chat

25th
Mar 2015
Alexander Popov
@ruelephant
Mar 25 2015 02:34
народ, а Auth::attempt использует какой алгоритм хеша пароля?
LaravelButler

Приветствуем Вас, @YeisonTapia, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

LaravelButler

Приветствуем Вас, @rdivyanshu, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

Константин Брызгалин
@constb
Mar 25 2015 05:18
а кто заставил встроенный scheduler работать - в задаче в кроне надо менять текущую директорию на папку проекта типа cd /home/user/app/folder; php artisan schedule:run или достаточно сделать php /home/user/app/folder/artisan schedule:run ?
Alexander Popov
@ruelephant
Mar 25 2015 05:19
хрен его знает
лучше поменять думаю
Vitaly Gorbunov
@cezar62882
Mar 25 2015 06:31
Всем привет
    $group = $this->groups->with(
        [
            'clientToGroups.client' => function ($query)
            {
                $query->orderBy('subscribed', 'asc');
            }
        ])->where('user_id', '=', $this->auth->user()->id)->where('id', '=', $id)->select([
        'id',
        'title'
    ])->first();
почему не работает сортировка по client?
вроде запрос правильный генерирует SQL: select * from clients where clients.id in (12295, 29053, 29654, 15588, 20367, 36080, 1823, 48497, 6562, 24546) order by subscribed ASC
а выводит неправильно
Константин Брызгалин
@constb
Mar 25 2015 06:38
@cezar62882 по-моему это не тот запрос. я в приведённом коде вообще whereIn не наблюдаю. если clientToGroups - это пивот, то похоже что отношения как-то не так заданы.
Роман Сохарев
@greabock
Mar 25 2015 06:40
@cezar62882 потому что у тебя реляции вообще не ок. У тебя, я так понял, многие к одному, с двух сторон, а должна быть нормальная многие ко многим связь или хотябы belongsToManyTrough и тогда ты зможешь упорядочить по пивоту
Константин Брызгалин
@constb
Mar 25 2015 06:40
class Group extends Model {
  public function clients()
  {
    return $this->belongsToMany('App\Client');
  }
}
так?
Vitaly Gorbunov
@cezar62882
Mar 25 2015 06:40

class ClientsToGroups extends Model {

public $timestamps = FALSE;
protected $fillable = ['user_id', 'client_id', 'client_group_id'];
protected $hidden = ['id', 'user_id', 'client_id', 'client_group_id'];

public function rules()
{
    return
        [
            'client_id'       => 'required',
            'client_group_id' => 'required',
            'user_id'         => 'required',
        ];
}

public function client()
{
    return $this->belongsTo('B2clients\Models\Client');
}

public function group()
{
    return $this->belongsTo('B2clients\Models\ClientGroup', 'client_group_id');
}

}

Роман Сохарев
@greabock
Mar 25 2015 06:41
вот о чем я и говорил
Vitaly Gorbunov
@cezar62882
Mar 25 2015 06:41
class ClientGroup extends Model {
protected $fillable = ['title', 'user_id'];

public function rules()
{
    return
        [
            'title'   => 'required|max:255',
            'user_id' => 'required',
        ];
}

public $timestamps = FALSE;

public function clientToGroups()
{
    return $this->hasMany('B2clients\Models\ClientsToGroups', 'client_group_id');
}
Константин Брызгалин
@constb
Mar 25 2015 06:41
тогда
$group->with(['clients' => function($query) ( $query->orderBy('subscribed'); }])->get();
для пивота отдельной модели создавать не нужно.
Alexander Popov
@ruelephant
Mar 25 2015 06:42
хочу задать глупый вопрос
Vitaly Gorbunov
@cezar62882
Mar 25 2015 06:42
client_group и client имеют связь многие ко многим
Константин Брызгалин
@constb
Mar 25 2015 06:42
belongsToMany связывает две модели, а имя пивот-таблицы либо генерируется автоматически либо задаётся явно.
Vitaly Gorbunov
@cezar62882
Mar 25 2015 06:43
связаны через таблицу clients_to_groups
Роман Сохарев
@greabock
Mar 25 2015 06:43
@cezar62882 не хрена они у тебя не имеют
Константин Брызгалин
@constb
Mar 25 2015 06:43
@cezar62882 неправильно. client и group имеют связь многие-ко-многим, а client_to_groups - пивот-таблица
Vitaly Gorbunov
@cezar62882
Mar 25 2015 06:43
пивот это что?
запутался
Константин Брызгалин
@constb
Mar 25 2015 06:44
@cezar62882 термин такой =)
Роман Сохарев
@greabock
Mar 25 2015 06:44
@cezar62882 ClientsToGroups в твоем случае - это пивот
Vitaly Gorbunov
@cezar62882
Mar 25 2015 06:44
угу
типо связка
Константин Брызгалин
@constb
Mar 25 2015 06:44
обозначает вспомогательную таблицу, обеспечивающую работу связей многие-ко-многим в реляционных БД
Vitaly Gorbunov
@cezar62882
Mar 25 2015 06:44
как тогда сделать?
Роман Сохарев
@greabock
Mar 25 2015 06:44
@cezar62882 пивот вообще не должен иметь модель
Константин Брызгалин
@constb
Mar 25 2015 06:44
@cezar62882 выше написал
class Group extends Model {
  public function clients()
  {
    return $this->belongsToMany('App\Client');
  }
}
Vitaly Gorbunov
@cezar62882
Mar 25 2015 06:45
круто
Константин Брызгалин
@constb
Mar 25 2015 06:45
class Client extends Model {
  public function groups()
  {
    return $this->belongsToMany('App\Group');
  }
}
больше ничего не надо
Vitaly Gorbunov
@cezar62882
Mar 25 2015 06:45
оказывается так легко
Роман Сохарев
@greabock
Mar 25 2015 06:46
Константин Брызгалин
@constb
Mar 25 2015 06:46
только в таком формате имя пивот-таблицы автоматически сгенерируется в client_group
но можно поменять - смотри параметры у belongsToMany
Vitaly Gorbunov
@cezar62882
Mar 25 2015 06:47
спасибо, буду пробовать
Роман Сохарев
@greabock
Mar 25 2015 06:47
вообщето нет
Vitaly Gorbunov
@cezar62882
Mar 25 2015 06:47
и читать
Роман Сохарев
@greabock
Mar 25 2015 06:47
@constb там правила образования другие
Константин Брызгалин
@constb
Mar 25 2015 06:47
@greabock ага, исправил
глюк какой-то, решил вдруг что c в алфавите идёт позже g =)
Alexander Popov
@ruelephant
Mar 25 2015 06:48
Роман Сохарев
@greabock
Mar 25 2015 06:50
@constb а еще пивоты в единственном числе формируются
client_group
но у него будет даже не так
Vitaly Gorbunov
@cezar62882
Mar 25 2015 06:51
а как узнать client_group или group_client?
Роман Сохарев
@greabock
Mar 25 2015 06:51
у него будет client_client_group, судя по именам моделей
Константин Брызгалин
@constb
Mar 25 2015 06:51
@cezar62882 по алфавиту
Роман Сохарев
@greabock
Mar 25 2015 06:51
@cezar62882 забей, укажи пивот явным образом
Vitaly Gorbunov
@cezar62882
Mar 25 2015 06:51
да не, пока не поздно
блин реально надо было просто group назвать
Константин Брызгалин
@constb
Mar 25 2015 06:52
не знаю, мне удобнее когда имена формируются автоматически так как считает нужным элоквент. получается предсказуемо и последовательно.
@cezar62882 может да, может нет. как знать, может однажды будут в моделях группы чего-то ещё?
Alexander Popov
@ruelephant
Mar 25 2015 06:53
@greabock прочитал, но ничего нового :)
картинка магия понравилась
Роман Сохарев
@greabock
Mar 25 2015 06:53
@ruelephant а там в дисклеймере все написано
статья для начинающих же
Alexander Popov
@ruelephant
Mar 25 2015 06:53
жаль нету толкового описания по более серьзным вещам
документация как правило пустая
допустим у нас есть сайт, в нем есть шапка+подвал (layout) и view
допустим мы используем blade в качестве шаблонизатора
Роман Сохарев
@greabock
Mar 25 2015 06:55
как ты такое допустил! =))
Константин Брызгалин
@constb
Mar 25 2015 06:55
@ruelephant многие вещи легко находятся в комментах к коду. что-то можно и тут спросить.
Alexander Popov
@ruelephant
Mar 25 2015 06:55
задача реализовать динамическую смену шапки в зависимости от роли пользователя
Vitaly Gorbunov
@cezar62882
Mar 25 2015 06:55
@constb думаю нет
Alexander Popov
@ruelephant
Mar 25 2015 06:56
я нашел решение, но он достаточно тупое
шарим переменную layout на все view, в начале каждой view пишем @extends($layout)
Роман Сохарев
@greabock
Mar 25 2015 06:57
@ruelephant нормальное решение в принципе
Alexander Popov
@ruelephant
Mar 25 2015 06:57
оно не красивое
лишняя строчка в начале каждой view
портит все
Роман Сохарев
@greabock
Mar 25 2015 06:57
эм... ты все равно пишешь экстенды же
Alexander Popov
@ruelephant
Mar 25 2015 06:58
эм нет
обычно у меня view это просто тупо кусок с php который тупо вставляется в шапку
никаких зависимостей
есть еще решение, в основном layout сделать include на переменную $view
Роман Сохарев
@greabock
Mar 25 2015 06:59
@ruelephant сделай композер на шапку
или криэйтор
Alexander Popov
@ruelephant
Mar 25 2015 06:59
это что? :)
Роман Сохарев
@greabock
Mar 25 2015 06:59
окей...
=))
Alexander Popov
@ruelephant
Mar 25 2015 06:59
у меня путаница с терминологией
alexfc
@alexfc
Mar 25 2015 06:59
магический заполнитель
Роман Сохарев
@greabock
Mar 25 2015 06:59
Vew::composer
Alexander Popov
@ruelephant
Mar 25 2015 07:00
я сам себе разработчик, словарь собственный поэтому :)
Роман Сохарев
@greabock
Mar 25 2015 07:00
View::creator
тут не какая-то особая терминология, это лары возможности
Alexander Popov
@ruelephant
Mar 25 2015 07:01
и что я буду делать с шапкой после этого?
там же передача переменных, а мы говорим про дизайн
делать if в layout?
Роман Сохарев
@greabock
Mar 25 2015 07:03
я тебе сейчас покажу тайную магию
ты только сильно не пугайся
Alexander Popov
@ruelephant
Mar 25 2015 07:04
щаз костыли пойдут :)
Роман Сохарев
@greabock
Mar 25 2015 07:06
$header = View::make($dinamic_view, $variables);
return View::make('some_view', compact('header'));
если очкуешь за пересечение переменных, то можешь добавить
$header = View::make($dinamic_view, $variables)->render();
Alexander Popov
@ruelephant
Mar 25 2015 07:07
ненене
Роман Сохарев
@greabock
Mar 25 2015 07:08
таким образом, я хочу продемонстрировать, что твои шаблоны в уже отрендереном виде могу находится в переменных
Alexander Popov
@ruelephant
Mar 25 2015 07:08
у меня есть решение лучше
Роман Сохарев
@greabock
Mar 25 2015 07:08
и их, с помощью композера или криэйтора, можно просто расшарить
Alexander Popov
@ruelephant
Mar 25 2015 07:09
рендерим layout с параметрами view и viewParam
соотвественно кормим их в include внутри blade
конечно все в оберточку обернуть
и не надо будет такого
Роман Сохарев
@greabock
Mar 25 2015 07:10
вот уж сомневаюсь, что это шибко лучше
Alexander Popov
@ruelephant
Mar 25 2015 07:10
зато шаблоны через контролер не тянем
g1nc
@g1nc
Mar 25 2015 07:10
Всем привет, подскажите кто то сталкивался? с утра начал exception вылетать при отправке формы TokenMismatchException in VerifyCsrfToken.php line 46: хотя вчера все норм было, изменений никаких не вносил, <input type="hidden" name="_token" value="{{ csrf_token() }}"> в форме присутствует
Alexander Popov
@ruelephant
Mar 25 2015 07:10
потребление памяти
@grimmH посмотри через консоль, он реально уходит?
Роман Сохарев
@greabock
Mar 25 2015 07:11
@ruelephant лол
Alexander Popov
@ruelephant
Mar 25 2015 07:11
шо?
Роман Сохарев
@greabock
Mar 25 2015 07:11
@ruelephant ты вообще читал, что я тебе пишу?
Alexander Popov
@ruelephant
Mar 25 2015 07:11
читал
Роман Сохарев
@greabock
Mar 25 2015 07:11
при чем тут контроллеры?
ты контроллеров вообще не касаешься
Alexander Popov
@ruelephant
Mar 25 2015 07:12
ну я так подумал что ты последний пример в контролер хочешь
в метод оформить
Роман Сохарев
@greabock
Mar 25 2015 07:12
я просто показал, что вьюху можно положить в переменную
Alexander Popov
@ruelephant
Mar 25 2015 07:12
в ларе нормально считается сделать return view
да понятно что можно
Роман Сохарев
@greabock
Mar 25 2015 07:12
а эту переменную передать в шаблон, при сборке
Alexander Popov
@ruelephant
Mar 25 2015 07:12
я это как бы читал
Роман Сохарев
@greabock
Mar 25 2015 07:13
через композер
Alexander Popov
@ruelephant
Mar 25 2015 07:13
да я понял
но не красиво
когда я спрашиваю решение, как правило оно у меня есть, просто не отвечает требованиями красоты :)
g1nc
@g1nc
Mar 25 2015 07:13
@ruelephant эм, можно ссылку как смотреть через консоль? я совсем зеленый (
Роман Сохарев
@greabock
Mar 25 2015 07:14
ты серьезно?
Alexander Popov
@ruelephant
Mar 25 2015 07:14
ну как то да
не нравится мне идея таскать рендер тушки в другую тушку
если там кривая реализация шаблонизатора, он будет инициализирован два раза
это надо core рыть глядеть
плюс если шаблонизатор использует какое то "умное" кеширование, он каждый раз будет ждать непойми что
придется лишний раз переваривать
а там будет "статическая" строка каждый раз с layout
Роман Сохарев
@greabock
Mar 25 2015 07:16
да ладно?
прям статическая?
Alexander Popov
@ruelephant
Mar 25 2015 07:16
ну layout как правило статический как дерево
Роман Сохарев
@greabock
Mar 25 2015 07:16
ты же только что мне рассказывал, что она динамически определяется на основании роли пользователя
Alexander Popov
@ruelephant
Mar 25 2015 07:17
ага, из трех вариантов
я точно не знаю как внутри там, но подрузомеваю что "извелкать" из движка шаблонизации логику чревато
он так сказать теряет мысль повествования, и может лишние дрова наколоть
Роман Сохарев
@greabock
Mar 25 2015 07:18
ИЗВЛЕКАТЬ?
Alexander Popov
@ruelephant
Mar 25 2015 07:18
да это именно извлекать
Роман Сохарев
@greabock
Mar 25 2015 07:19
@ruelephant http://laravel.su/docs/5.0/views#view-composers пойди ка доку почитай
Alexander Popov
@ruelephant
Mar 25 2015 07:19
вместо рендере в один проход, мы два раза просим отрендерить два файла
Роман Сохарев
@greabock
Mar 25 2015 07:20
@ruelephant разговор начинает клониться в сторону "нельзя использовать инклуд".
я умываю руки
Orel
@2byte
Mar 25 2015 07:20
@greabock А напомни ссылку на гист, там что-то про вьюхи вчера мелькнуло
Alexander Popov
@ruelephant
Mar 25 2015 07:20
использование compose в данном случаи навивает асоциацию с микроскопом :)
плюс поведение compose из контролера сложноуправляемо
опять получаем атомарный контейнер, который хрен повернешь без крана
я лично против паттерна "слепой конвеер" @greabock
когда один слепой делает операцию, и дальше он уже ничего не ведает
g1nc
@g1nc
Mar 25 2015 07:24
@ruelephant _token в запросе отправляется, подскажите в какую сторону хоть копать
Alexander Popov
@ruelephant
Mar 25 2015 07:25
@grimmH git status? :)
Роман Сохарев
@greabock
Mar 25 2015 07:25
@2byte я не знаю, о чем ты (
Alexander Popov
@ruelephant
Mar 25 2015 07:25
или ты не используешь сисему хранения кода
@grimmH сделай для начал минимальный пример
и выложи суда
g1nc
@g1nc
Mar 25 2015 07:26
git не используется, ок сейчас
Orel
@2byte
Mar 25 2015 07:26
@greabock вчера кто-то спрашивал непаритли хранение вьюх в ресурсах и потом линк промелькнул на гист
Vladislav Maksimchuk
@condoriano
Mar 25 2015 07:26
я спрашивал
Alexander Popov
@ruelephant
Mar 25 2015 07:27
после того как верстак выдрал все view в www и начал забирать их напрямую
я уже смирился
вся шаблонизация на клиент уехала
single page application типо
Vitaly Gorbunov
@cezar62882
Mar 25 2015 07:29
Народ а как сохранять связь в базу через pivot ?
g1nc
@g1nc
Mar 25 2015 07:31
@ruelephant html - http://hastebin.com/gihesuvuso.xml, controller - http://hastebin.com/aqekuwuduz.coffee, route - Route::controller('auth', 'AuthController');
Vladislav Maksimchuk
@condoriano
Mar 25 2015 07:32
а я вот всё думаю, неужели вот так до конца жизни и прийдется
\DB::beginTransaction();
$project->images()->delete();
$project->delete();
\DB::commit();
вот это вот всё обрамлять бегiнТранзактион и каммит
Роман Сохарев
@greabock
Mar 25 2015 07:33
@condoriano используй ondelete
Vladislav Maksimchuk
@condoriano
Mar 25 2015 07:33
в плане?
удалять картинки при ondelete event project?
Роман Сохарев
@greabock
Mar 25 2015 07:35
@condoriano ну во-первых: ты можешь использовать внешние ключи, во-вторых: ты можешь использовать события модели
Vladislav Maksimchuk
@condoriano
Mar 25 2015 07:35
ну вот меня и смутили события, если вдруг проект удалился, тут срабатывает delete event и вдруг всё падает? имеем удаленный проект и зомби-картинки в БД
Alexander Popov
@ruelephant
Mar 25 2015 07:36
@grimmH дай еще раз ошибку
Константин Брызгалин
@constb
Mar 25 2015 07:36
@condoriano в схеме изображений $table->foreign('project_id')->references('id')->on('projects')->onDelete('cascade');
удалится проект - все изображения следом улетят
g1nc
@g1nc
Mar 25 2015 07:36
@ruelephant TokenMismatchException in VerifyCsrfToken.php line 46:
Vladislav Maksimchuk
@condoriano
Mar 25 2015 07:37
тоже думал об этом, но не всегда хочется делать ключи..
Константин Брызгалин
@constb
Mar 25 2015 07:37
@grimmH в форме нет csrf token'а
Роман Сохарев
@greabock
Mar 25 2015 07:37
@condoriano тогда используй события модели
Alexander Popov
@ruelephant
Mar 25 2015 07:37
@grimmH покажи VerifyCsrfToken.php
Vladislav Maksimchuk
@condoriano
Mar 25 2015 07:37
@greabock есть соображения как в событиях модели сказать, мол - я хочу это в транзакцию?
Alexander Popov
@ruelephant
Mar 25 2015 07:38
@constb есть, он проверил
посмотри на какую строку ругается, 46!
Константин Брызгалин
@constb
Mar 25 2015 07:38
@condoriano по-моему форины как раз для этого и предназначены - обеспечивать связность данных независимо от того что происходит с таблицами.
Alexander Popov
@ruelephant
Mar 25 2015 07:38
он что-то менял
Роман Сохарев
@greabock
Mar 25 2015 07:38
@condoriano эм... ну да, одной транзакцией вряд ли выйдет
g1nc
@g1nc
Mar 25 2015 07:38
@ruelephant
<?php namespace App\Http\Middleware;

use Closure;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;

class VerifyCsrfToken extends BaseVerifier {

    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        return parent::handle($request, $next);
    }

}
Константин Брызгалин
@constb
Mar 25 2015 07:38
@grimmH покажи хтмл-код формы
Alexander Popov
@ruelephant
Mar 25 2015 07:39
@constb выше давал - http://hastebin.com/gihesuvuso.xml
там все шоколадно вроде
g1nc
@g1nc
Mar 25 2015 07:39
@constb токен генерируется и отправляется http://hastebin.com/laciwaxali.xml
Роман Сохарев
@greabock
Mar 25 2015 07:39
@condoriano однако, ты можешь использовать событие "deleting" то есть до удаления, и таким образом проект не будет удален, пока не будут удалены его картинки
Alexander Popov
@ruelephant
Mar 25 2015 07:39
@grimmH может какая то двойная отправка?
там точно ничего хитрого вроде ajax
или второй формы
Vladislav Maksimchuk
@condoriano
Mar 25 2015 07:40
@greabock я даже подумывал в событии ДО удаления начать транзакцию, а в событии ПОСЛЕ удаления коммитить ее.. ннооо это изврат )
Константин Брызгалин
@constb
Mar 25 2015 07:40
форма магией генерится. я бы на всякий случай открыл developer tools в хроме на закладке network и посмотрел что именно улетает на сервер.
Роман Сохарев
@greabock
Mar 25 2015 07:41
@condoriano на самом деле, вполне себе решение
g1nc
@g1nc
Mar 25 2015 07:41
нет, все стандартно, клацнул отправило, самое странное что вчера все было ок, сегодня пришел и фигня какая то, код никто не изменял
@constb уже смотрел, отправляет только три поля, причем exception вылетает при отправке любой формы
Vladislav Maksimchuk
@condoriano
Mar 25 2015 07:41
@constb как бы для того и придуманы, да, но не всегда хорошая идея их использовать
хотя вот наверное тут самое оно будет
g1nc
@g1nc
Mar 25 2015 07:42
@constb
Form Data:
_token:e7A36CfEVgix6gIKSyT25XLpcne8J6SRQjQxYFwo
email:фыафы
password:фыафыа
Константин Брызгалин
@constb
Mar 25 2015 07:42
@grimmH кстати кнопка входа-то - какая-то ссылка, а не input[type=submit]
Роман Сохарев
@greabock
Mar 25 2015 07:43
@condoriano звучит изящно и логически обосновано
теперь я так и буду делать )
g1nc
@g1nc
Mar 25 2015 07:44
@constb да это так
$('#form-register-submit').click(function(e){
        e.preventDefault();
        $('#form-register').submit();
});
Константин Брызгалин
@constb
Mar 25 2015 07:44
@grimmH добавь в handle миддлвари dd($request->all()), убедись что получаешь именно эти данные. может какой-то фильтр на полпути их чистит?
g1nc
@g1nc
Mar 25 2015 07:44
array:3 [▼
  "_token" => "e7A36CfEVgix6gIKSyT25XLpcne8J6SRQjQxYFwo"
  "email" => "фыафы"
  "password" => "фыафыа"
]
Alexander Popov
@ruelephant
Mar 25 2015 07:45
магия.jpg
g1nc
@g1nc
Mar 25 2015 07:45
ага, ладно пойду думать что нибудь, спасибо за внимание)
Константин Брызгалин
@constb
Mar 25 2015 07:46
@grimmH похоже токен в форме отличается от токена в сессии
Alexander Popov
@ruelephant
Mar 25 2015 07:47
позвольте немного магии
если вы меня слушаете
g1nc
@g1nc
Mar 25 2015 07:47
о, вот а как глянуть токен в сессии? что то не смог найти в доках
Константин Брызгалин
@constb
Mar 25 2015 07:47
попробуй обновить страницу и засабмитить заново. попробуй обновить через Ctrl-F5 чтобы сбросить кэш самой страницы если она в кэше браузера зависает
Alexander Popov
@ruelephant
Mar 25 2015 07:47
@grimmH проверь на двойной запрос
может форма два раза уходит? тогда токен успеет протухнуть
по консоли в браузере глянь
Константин Брызгалин
@constb
Mar 25 2015 07:48
@ruelephant по-моему нет. по-моему токен в пределах сессии стабилен..
Alexander Popov
@ruelephant
Mar 25 2015 07:48
нет
он на каждый запрос генерируется
Константин Брызгалин
@constb
Mar 25 2015 07:48
иначе работать со страницами сайта сразу в нескольких вкладках было бы проблематично
g1nc
@g1nc
Mar 25 2015 07:48
в консоли один запрос post уходит
Alexander Popov
@ruelephant
Mar 25 2015 07:48
думаешь?
Константин Брызгалин
@constb
Mar 25 2015 07:49
@grimmH я к тому, что тот токен, который сейчас в форме которая открыта на странице браузера устарел. если ты обновишь страницу, у тебя может в форме уже другой токен будет
@ruelephant уверен в этом
g1nc
@g1nc
Mar 25 2015 07:49
@constb обновил, отправил, сбросил кэш, открыл в других браузерах - результат тот же
Константин Брызгалин
@constb
Mar 25 2015 07:49
вообще иметь разные токены в одной сессии - для защиты от CSRF излишне
Alexander Popov
@ruelephant
Mar 25 2015 07:51
@grimmH я пас, всю ночь не спал :)
зомбииии!
Константин Брызгалин
@constb
Mar 25 2015 07:51
@grimmH ну тогда только открывать Illuminate\Foundation\Http\Middleware\VerifyCsrfToken::tokensMatch ставить брекпойнт и смотреть что там происходит.
Vitaly Gorbunov
@cezar62882
Mar 25 2015 07:51
если модель удалить то она из pivot сама удалится?
Константин Брызгалин
@constb
Mar 25 2015 07:52
@cezar62882 если настроен foreign key - да.
или вручную можно сделать на релейшен ->sync([]);
но лучше пользоваться форинами. они как раз для этого и предназначены.
в миграции примерно так будет:
        Schema::table('product_product_category', function(Blueprint $table)
        {
            $table->foreign('product_category_id')->references('id')->on('product_categories')->onDelete('cascade');
            $table->foreign('product_id')->references('id')->on('products')->onDelete('cascade');
        });
Vladislav Maksimchuk
@condoriano
Mar 25 2015 07:53
@greabock сарказм?)
Роман Сохарев
@greabock
Mar 25 2015 07:53
@condoriano вовсе нет
@condoriano мне действительно нравится это решение. Это позволяет гарантировать атомарность операции удаления
Vitaly Gorbunov
@cezar62882
Mar 25 2015 07:54
@constb спасибо
Vladislav Maksimchuk
@condoriano
Mar 25 2015 07:54
транзакции в ивентах?
Константин Брызгалин
@constb
Mar 25 2015 07:54
а вот такой вопрос - у сессии контракт есть? фасад я вижу, а контракт не по глазам. или до неё только через $request->session() можно дотянуться?
Роман Сохарев
@greabock
Mar 25 2015 07:54
@condoriano ну да
@constb посмотри как она в реквест попадает, если там есть контракт, то там ты его и обнаружишь )
Константин Брызгалин
@constb
Mar 25 2015 07:57
@greabock не. сессия из симфони-реквеста приходит.
Роман Сохарев
@greabock
Mar 25 2015 07:58
ну а туда она как попадает? ))
хотя... нет
там же свои заморочки... в симфони есть ioc?
Константин Брызгалин
@constb
Mar 25 2015 08:00
@greabock я не стал закапываться так далеко. возьму сессию из реквеста. а так, у сессии в симфони свой интерфейс, ларовская сессия его реализует. наверное через контейнер где-то регистрируется.
Роман Сохарев
@greabock
Mar 25 2015 08:00
SessionInterface имеется
а вот есть ли он в сервис-контейнере, это еще вопрос
Константин Брызгалин
@constb
Mar 25 2015 08:02
<?php namespace App\Services;

use Illuminate\Http\Request;
use Illuminate\Session\Store as Session;

class Cart {

    /**
     * @var Session
     */
    private $session;

    function __construct(Request $request)
    {
        $this->session = $request->session();
    }
}
может не совсем по фэншую, зато наглядно и понятно что откуда берётся.
Роман Сохарев
@greabock
Mar 25 2015 08:02
@constb в любом случае, для DI лучше использовать контракт Request'a
Vitaly Gorbunov
@cezar62882
Mar 25 2015 08:08
народ, кто сталкивался с проблемой работы artisan, homestead и .env если там стоит DB_HOST=localhost то не работает, работает только с DB_HOST=127.0.0.1
а через веб работает только с DB_HOST=localhost
Роман Сохарев
@greabock
Mar 25 2015 08:09
не вижу проблемы
.env относится только к среде
и везде (в каждой среде) он должен быть свой
Vitaly Gorbunov
@cezar62882
Mar 25 2015 08:11
@greabock я имею ввиду что локально это гемор постоянно менять, чтобы накатить миграции
@greabock а если по сайту ходить то обязательно нужно менять на localhost иначе ошибка подключения к базе.
Роман Сохарев
@greabock
Mar 25 2015 08:12
оу... я тебя не так понял просто
если честно, впервые слышу о таком
Vitaly Gorbunov
@cezar62882
Mar 25 2015 08:13
@greabock блин, значит у меня что-то криво стоит
JhaoDa
@jhaoda
Mar 25 2015 08:15
Ещё я знаю, что если на венде писать localhost, а не 127.0.0.1, то PDO дико тормозит
Но это я так, за компанию :)
Роман Сохарев
@greabock
Mar 25 2015 08:17
@cezar62882 покажи .env и конфиг
@cezar62882 есть подозрение, что ты порт определил явным образом
Vitaly Gorbunov
@cezar62882
Mar 25 2015 08:21
@greabock угу
DB_HOST=127.0.0.1
DB_PORT=33060
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
    'mysql' => [
        'driver'    => 'mysql',
        'host'      => env('DB_HOST', '127.0.0.1'),
        'database'  => env('DB_DATABASE', 'homestead'),
        'username'  => env('DB_USERNAME', 'homestead'),
        'password'  => env('DB_PASSWORD', 'secret'),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
        'port'      => env('DB_PORT', '3306'),
    ],
Роман Сохарев
@greabock
Mar 25 2015 08:22
убери порт вообще (сотри)
Vitaly Gorbunov
@cezar62882
Mar 25 2015 08:22
порт пришлось тоже менять, так как у второго чувака не работает с 33060
точнее у меня не работает с 3306
Роман Сохарев
@greabock
Mar 25 2015 08:25
да что за пляски... если из консоли работать то дефолтное соединение 3306. А если через веб запрос, то 33060
лара сама умеет определять контекст, обычно помогает просто стереть графу с портом
Vitaly Gorbunov
@cezar62882
Mar 25 2015 08:26
@greabock не, и там и там 33060 у меня, только localhost и 127.0.0.1 ругается
может из-за того, что локально стоит mysql ?
Роман Сохарев
@greabock
Mar 25 2015 08:27
у тебя мускул отдельно от хамстида стоит?
Vitaly Gorbunov
@cezar62882
Mar 25 2015 08:28
@greabock ага, стоял до homestead, баз куча
Роман Сохарев
@greabock
Mar 25 2015 08:28
ну поздравляю
Vitaly Gorbunov
@cezar62882
Mar 25 2015 08:28
@greabock стопанул, ситуация не изменилась
Alexander Popov
@ruelephant
Mar 25 2015 08:29
шаманы
NelinD
@NelinD
Mar 25 2015 08:29
@ruelephant реверс-инженеры
Роман Сохарев
@greabock
Mar 25 2015 08:30
@cezar62882 тогда вопрос в догонку: если у тебя есть локальная среда, нахрена ты вообще ставил хамстид?
Vitaly Gorbunov
@cezar62882
Mar 25 2015 08:30
@greabock мускуль и на хоместид стоит и локально мускуль стоит
вообще работаю с базой в хоместид
да и в хоместид всякие очереди и т.д. предустановлены
Alexander Popov
@ruelephant
Mar 25 2015 08:32
@NelinD да ладно? а мне кажется:
пол канала страдают
причем не просто так, а под видом "проектирования"
NelinD
@NelinD
Mar 25 2015 08:33
@ruelephant полканала внимательно повторяют за ними ибо боятся задать такой вопрос из-за тебя;)
Роман Сохарев
@greabock
Mar 25 2015 08:38
мне вот уже интересно, к какой половине вы себя относите, ребят?
Vitaly Gorbunov
@cezar62882
Mar 25 2015 08:42
я отношу себя к обезьяне, которой в руки автомат дали :D
Константин Брызгалин
@constb
Mar 25 2015 08:43
отвлёкся на полчаса, а тут такие страсти )
если сайт разрабатывается на хоумстеде, там и работать всё должно в хоумстеде.
открывать через localhost:8000
Vitaly Gorbunov
@cezar62882
Mar 25 2015 08:44
http://www.youtube.com/watch?v=GUOWb8JAbes
Роман Сохарев
@greabock
Mar 25 2015 08:44
ютуб-ржаку в код заворачивайте
Vitaly Gorbunov
@cezar62882
Mar 25 2015 08:46
@constb да у меня в хоумстиде все )
просто месяц назад его небыло, стоял локально мускуль, не удалять же его)
Константин Брызгалин
@constb
Mar 25 2015 08:47
@cezar62882 что там удалять - дело десятое, но в любом случае в хоумстеде свой мускл, с ним и надо работать.
мигрировать базу через mysqldump если нужно.
Roman
@starikovr
Mar 25 2015 08:48
http://laravel.su/docs/5.0/validation#form-request-validation
подскажите пожалуйста, пытаюсь сделать, как в этом разделе описано, если ввести данные, которые не проходят валидацию, меня возвращает обратно а в шаблоне написано только "Forbidden". А я хочу, чтобы он мне форму отдал и сообщения об ошибках можно было вывести.
JhaoDa
@jhaoda
Mar 25 2015 08:50
@starikovr Forbidden это не валидатор сработал, а авторизатор. Читай там же ниже «Контроль доступа»
Vitaly Gorbunov
@cezar62882
Mar 25 2015 08:50
@constb да я не работаю через локальный мускуль)
Ruslan Koloskov
@softua
Mar 25 2015 08:50
приветствую.
Vitaly Gorbunov
@cezar62882
Mar 25 2015 08:51
меня правда за обезьяну держат :D
Ruslan Koloskov
@softua
Mar 25 2015 08:52

если на вход постом заходит массив, моги ли значение получить так:

$value = $request->get('array['key']');

или:

$value = $request->get('array.key');

?

Alexander Popov
@ruelephant
Mar 25 2015 08:53
подскажите что нибудь под la5 что бы роли пользователя огранизовать
очень простенькое
Константин Брызгалин
@constb
Mar 25 2015 08:53
@cezar62882 ну значит так объяснил )
Роман Сохарев
@greabock
Mar 25 2015 08:55
@softua дык проверь )
Roman
@starikovr
Mar 25 2015 08:55
@jhaoda о, блин, спасибо. Подскажи пожалуйста, а как правильно организовать заполнение формы, не заставлять же юзверя вводить все заново?
Ruslan Koloskov
@softua
Mar 25 2015 08:56
@greabock :) у меня не пашет, но кажется где-то читал, что должно работать.
Роман Сохарев
@greabock
Mar 25 2015 08:57
@ruelephant создать модель ролей. Проще уж не куда
Roman
@starikovr
Mar 25 2015 08:57
даже если в шаблоне заполнять, откуда взять введенные пользователем данные?
JhaoDa
@jhaoda
Mar 25 2015 08:57
@starikovr если форма не прошла валидацию, то юзера вернет назад и введенные данные сохраняются в сессии, и подставляются автоматом, либо можно использовать функцию old() и подставлять их руками
Roman
@starikovr
Mar 25 2015 08:58
@jhaoda да вот что то сбрасывает все в ноль
Orel
@2byte
Mar 25 2015 08:58
Сегодня весело
JhaoDa
@jhaoda
Mar 25 2015 08:58
@starikovr а ты форму руками создал или через пакет типа laravelcollective/html или Former?
Roman
@starikovr
Mar 25 2015 08:59
руками
тогда через олд?
JhaoDa
@jhaoda
Mar 25 2015 08:59
@starikovr да
Roman
@starikovr
Mar 25 2015 08:59
ок, спасибо
JhaoDa
@jhaoda
Mar 25 2015 08:59
@starikovr но лучше пакет юзать
Roman
@starikovr
Mar 25 2015 09:00
@jhaoda, да, я видел. На дальнейшие проекты возьму, а пока я на ларавел неделю, как то не до этого еще
с базовыми вещами бы разобраться
LaravelButler

Приветствуем Вас, @nikehaskell, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

DrPalich
@DrPalich
Mar 25 2015 09:28
Всем Здрасти =)
Это сннова я и снова с неумными мыслями
Вопрос. Может кто знает.
Я выташил из БД коллекцию. Обработал и понял, что надо добавить еще. Как к текщей коллекции добавить еще 1 коллекцию?
Roman
@starikovr
Mar 25 2015 09:34
а after у валидатора я могу использовать только в контроллере, задав экземпляру объекта?
JhaoDa
@jhaoda
Mar 25 2015 09:34
@DrPalich ну а не пробовал посмотреть, какие подсказки показывает IDE? Доки почитать — http://laravel.com/api/master/Illuminate/Support/Collection.html#method_merge
DrPalich
@DrPalich
Mar 25 2015 09:37
@jhaoda Большое спасибо. Мой gedit как-то не склонен к подсказкам, а доки я читал на laravel.su и там не нашел этого.
Alexander Popov
@ruelephant
Mar 25 2015 09:37
57 рублей за бакс товарищи!
что бы мы так жили
JhaoDa
@jhaoda
Mar 25 2015 09:37
@DrPalich там внизу написано «Вместо того, чтобы приводить здесь огромный скучный список методов коллекции, мы отсылаем вас к более удобной документации API этого класса.»
Alexander Popov
@ruelephant
Mar 25 2015 09:38
тфу тфу тфу
конечно
DrPalich
@DrPalich
Mar 25 2015 09:38
@jhaoda Я наверное слепой и не вижу где это написано
JhaoDa
@jhaoda
Mar 25 2015 09:39
@DrPalich http://laravel.su/docs/5.0/collections в самый низ прокрути
DrPalich
@DrPalich
Mar 25 2015 09:40
@jhaoda Еще раз спасибо теперь вижу =)
Вспомнился старый баян
Alexander Popov
@ruelephant
Mar 25 2015 09:42
народ, я придумал что еще запатчить
в ларе нету поддержки полей типо SET
это мульти ENUM кто не вкурсе
Orel
@2byte
Mar 25 2015 09:43
@ruelephant 58
Alexander Popov
@ruelephant
Mar 25 2015 09:43
хранит бинарную маску
@2byte 58?
DrPalich
@DrPalich
Mar 25 2015 09:43
Американский форум: задаешь вопрос - тебе дают ответ. Еврейский форум: Задаешь вопрос - тебе задают два. Русский форум: Задаешь вопрос - тебе долго и упорно объясняют какой ты му*ак
Orel
@2byte
Mar 25 2015 09:43
@ruelephant рублей за бакс
Alexander Popov
@ruelephant
Mar 25 2015 09:43
@2byte я курс на завтра сказал
новости читай
Ruslan Koloskov
@softua
Mar 25 2015 09:54
кто-то разбирается в reactjs?
Alexander Popov
@ruelephant
Mar 25 2015 09:55
конечно, еще в вулканизации резины, полетах на марс, разведению тропических культур в условиях крайнего севера :)
все на канал по laravel, спрашивайте
Константин Брызгалин
@constb
Mar 25 2015 10:01
@ruelephant на самом деле SET в ларе есть, но для postgress - он там называется ARRAY по-моему.
где-то в ларакастах видел как им пользоваться.
Roman
@starikovr
Mar 25 2015 10:02
return redirect()->back()->withErrors($validator->errors());
почему при валидации из контроллера и возвращении назад old() уже не срабатывает?
ему что то еще надо передать?
Alexander Popov
@ruelephant
Mar 25 2015 10:03
евро грохнулось до 62 рубля, готовим аварийную бутылку Crystal
JhaoDa
@jhaoda
Mar 25 2015 10:03
@starikovr а откуда данным взяться? Ты их в сессию положил через withInput? Ну почитай документацию, а?
Alexander Popov
@ruelephant
Mar 25 2015 10:03
откроем на 50-/60- доллар/бакс
Roman
@starikovr
Mar 25 2015 10:05
@jhaoda да я честно пытаюсь сначала найти там, потом спросить :worried:
Vitaly Gorbunov
@cezar62882
Mar 25 2015 10:07
@jhaoda некоторые думаю, а зачем, когда спросить можно
у кого-то сроки-сроки поджимают, а читать то лень и долго
Alexander Popov
@ruelephant
Mar 25 2015 10:10
сроки они такие
JhaoDa
@jhaoda
Mar 25 2015 10:10
@cezar62882 это и печалит
Alexander Popov
@ruelephant
Mar 25 2015 10:16
печалит что нету специалистов по la5 мирового уровня :)
по крайне мере тут
Roman
@starikovr
Mar 25 2015 10:16
@cezar62882 нет, не лень, я из нее не вылезаю. Просто инструмент новый и все сразу не укладывается, а писать действительно надо.
Alexander Popov
@ruelephant
Mar 25 2015 10:16
люди которые вносят изменения в core скажем
Vitaly Gorbunov
@cezar62882
Mar 25 2015 10:18
@starikovr я уже пришел к тому что сразу ничего круто не получится, постоянно возвращаюсь к старому коду и правлю
на ларе тоже чуть больше месяца
Alexander Popov
@ruelephant
Mar 25 2015 10:21
@cezar62882 а как так?
я вот чуствую просто когда код не красивый или красивый
если красивый значит он наверняка совпадает с правильным
Vitaly Gorbunov
@cezar62882
Mar 25 2015 10:22
@ruelephant у тебя было такое, возвращаешься к старому коду через пару месяцев и думаешь WTF?
Alexander Popov
@ruelephant
Mar 25 2015 10:23
в случай дедлайна
когда код написан ночами особенно
главное придерживаться принципа, не плодить сущности без надобности но и не копировать
некоторые вон репозитории наплодили на проекте из трех страниц, сами и запутались
делай просто насколько возможно но не проще этого
g1nc
@g1nc
Mar 25 2015 10:31
Кто нибудь может подсказать как сбросить токен?
В общем в форму почему то вставляется неверный токен через `csrf_token()', в самой сессии токен другой
array:2 [▼
  "request" => array:3 [▼
    "_token" => "AqO5I2u0FjgNmtCSO1rgBA6F7F6umsE4iK2PDFuI"
    "email" => "asdasd"
    "password" => "asdasd"
  ]
  "token" => "0icgDLYfEfC0IonEN07mNC4ycAi6cTZH35eo14Gx"
]
или что можно в ларавел сбросить, php artisan cache:clear уже делал
Константин Брызгалин
@constb
Mar 25 2015 10:34
@grimmH драйвер для session какой стоит?
g1nc
@g1nc
Mar 25 2015 10:34
file
Константин Брызгалин
@constb
Mar 25 2015 10:35
тогда вообще странно. на кэш браузера только остаётся грешить. а форма случайно не аяксом подтягивается?
g1nc
@g1nc
Mar 25 2015 10:35
неа, обычный blade
Константин Брызгалин
@constb
Mar 25 2015 10:36
ну понятно - но он открывается сразу в странице или там аяксовый обработчик который вставляет форму или токен в неё?
g1nc
@g1nc
Mar 25 2015 10:37
сразу в страницу
походу что то происходит при отправке формы, если на страницу вывести Session::getToken() и csrf_token() то значения одинаковы, но после отправки уже в мидлваре значения отличаются
Константин Брызгалин
@constb
Mar 25 2015 10:38
@grimmH больше похоже на то что при отправке предыдущая сессия успевает сдохнуть и в новой сессии уже другой токен. может на файловой системе прав нету на запись в хранилище сессий?
g1nc
@g1nc
Mar 25 2015 10:41
права есть, там файлы сессий появляются постоянно, атрибутов никаких не стоит
g1nc
@g1nc
Mar 25 2015 10:47
блин а почему сессия может сдыхать то из за отправку формы
Vitaliy Stepanenko
@Nayjest
Mar 25 2015 11:03
@grimmH у меня тоже на локальной машине часто сдыхает сессия при отправке больших форм (Laravel 4), причину так и не нашел, смена драйвера сессии не помогает (
g1nc
@g1nc
Mar 25 2015 11:04
та там маленькая формочка авторизации с двумя полями) laravel 5
Vitaly Gorbunov
@cezar62882
Mar 25 2015 11:11
@grimmH авторизация из коробки?
у меня из коробки работает без проблем
g1nc
@g1nc
Mar 25 2015 11:13
авторизация стандартная Auth::attempt($credentials), у меня тоже как правило работает все норм, вот сегодня сессия начала сдыхать, без причин и без изменений кода, до авторизации вообще не доходит, мидлвар выкидывает исключения еще до входа в метод контроллера
Vitaly Gorbunov
@cezar62882
Mar 25 2015 11:20
хз
@grimmH на то он и мидлвар(csrf) чтобы не пускать дальше
LaravelButler

Приветствуем Вас, @primalpro, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

LaravelButler

Приветствуем Вас, @cuhuak, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

Alexander Popov
@ruelephant
Mar 25 2015 11:50
народ как дотянуться то роутов которые внутри группы?
из URL::route
у группы задан префикс и неймспейс
Ruslan Koloskov
@softua
Mar 25 2015 11:54
@ruelephant по имени не?
Alexander Popov
@ruelephant
Mar 25 2015 11:54
ну там задано Route::resource("user", "UserController");
если попробывать по user позвать то бестолку
Ruslan Koloskov
@softua
Mar 25 2015 11:55
ааа...хз.
Alexander Popov
@ruelephant
Mar 25 2015 11:55
не охото еще и 'as' прописывать
хотя это сработает
Ruslan Koloskov
@softua
Mar 25 2015 11:56
@ruelephant так а куда тут as прописать?
g1nc
@g1nc
Mar 25 2015 11:56
@ruelephant так а если глянуть как они в системе называются через php artisan route:list?
Alexander Popov
@ruelephant
Mar 25 2015 11:56
Route::resource("user", ['as'=>'aliase.aliase', 'uses'=>"UserController"]);
Ruslan Koloskov
@softua
Mar 25 2015 11:57
@ruelephant и на какой экшен будет это вести?
Alexander Popov
@ruelephant
Mar 25 2015 11:57
@softua на все, это restfull контролер выйдет
почитай про resource
g1nc
@g1nc
Mar 25 2015 11:57
@softua стандартные экшн index show create store edit update destroy
Ruslan Koloskov
@softua
Mar 25 2015 11:59
@ruelephant @grimmH :) я понимаю, что это resource. Не понимаю, какой будет урл?
ну получаем URL::route('alise.aliase')
Alexander Popov
@ruelephant
Mar 25 2015 12:00
@softua прежний, это алиас просто для удобства доступа
из кода
я нашел ошибку кстати
я не указал action в конце пути
я указывал на api.v1.user а надо на api.v1.user.index
Ruslan Koloskov
@softua
Mar 25 2015 12:04
@ruelephant так, поясни плиз.
Route::resource("user", ['as'=>'aliase.aliase', 'uses'=>"UserController"]);
какой урл это вернет?
ну точнее route('aliase.aliase') что вернет?
Alexander Popov
@ruelephant
Mar 25 2015 12:05
оно вернет /user
если конечно оно не в группе с префиксом, тогда вернет с префиксом :)
Route::group(['prefix' => 'api',  'namespace'=>'Api'], function()
{
Route::resource("user", ['as'=>'aliase.aliase', 'uses'=>"UserController"]);
}
Ruslan Koloskov
@softua
Mar 25 2015 12:07

а

Route::resource("user", ['as'=>'aliase.aliase', 'uses'=>"UserController@index"]);

вернет /user/index ?

Alexander Popov
@ruelephant
Mar 25 2015 12:07
в случаи с resource екшен нельзя указать
не путай с обычными роутами
это группа роутов в одном упаковано
господи, возьми попробуй
в view пишешь {{ URL::route('путь к роуту') }}
JhaoDa
@jhaoda
Mar 25 2015 12:08
Alexander Popov
@ruelephant
Mar 25 2015 12:10
@softua URL::route('aliase.aliase.index') == URL::route('api.user.index')
теперь понятно?
вообще можно обозвать алиас просто "test" тогда будет обращение URL::route('test.index')
Ruslan Koloskov
@softua
Mar 25 2015 12:13
да, теперь понятно.
@ruelephant так по идее же без as должно работать ?
Alexander Popov
@ruelephant
Mar 25 2015 12:14
да но по полному пути
полные пути к текущим роутам можно посмотреть консольной командой - php artisan route:list
как уже заметили выше
LaravelButler

Приветствуем Вас, @ozeron, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

LaravelButler

Приветствуем Вас, @nonotest, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

LaravelButler

Приветствуем Вас, @GioChocolateBro, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

GioChocolateBro
@GioChocolateBro
Mar 25 2015 14:10
what ru guys on about ?
Alexander Popov
@ruelephant
Mar 25 2015 14:21
what?
g1nc
@g1nc
Mar 25 2015 14:24
вопрос на засыпку, при использовании Route::controller на post экшны автоматически вешается что ли csfr middleware?
Vitaliy Stepanenko
@Nayjest
Mar 25 2015 14:26
@GioChocolateBro Talking about routing in Laravel
Alexander Popov
@ruelephant
Mar 25 2015 14:26
может он у тебя глобально повешен?
g1nc
@g1nc
Mar 25 2015 14:26
возможно из коробки, не подскажешь где это глянуть? laravel 5
Alexander Popov
@ruelephant
Mar 25 2015 14:27
в кернеле
g1nc
@g1nc
Mar 25 2015 14:27
да, нашел, спасибо
Alexander Popov
@ruelephant
Mar 25 2015 14:27
http/Kernel.php
JhaoDa
@jhaoda
Mar 25 2015 14:27
@grimmH этот мидлваре вешается глобально вообще на все POST-запросы
g1nc
@g1nc
Mar 25 2015 14:30
в общем целый день мучений с этим исключением и в итоге мидлвар отключен вовсе)
Orel
@2byte
Mar 25 2015 14:30
@grimmH а favicon есть?
g1nc
@g1nc
Mar 25 2015 14:31
да
g1nc
@g1nc
Mar 25 2015 14:36
:shipit: закомментировал в кернеле'App\Http\Middleware\VerifyCsrfToken', отправил запрос, разкомментировал, дальше работает нормально, почти день потрачено
JhaoDa
@jhaoda
Mar 25 2015 14:38
А все почему? Потому что доки надо читать целиком...
Orel
@2byte
Mar 25 2015 14:39
@jhaoda В доке написано, что так оно заработает?
g1nc
@g1nc
Mar 25 2015 14:39
так причем тут доки, it's a magic
JhaoDa
@jhaoda
Mar 25 2015 14:40
В доках написано, зачем это вообще нужно
А вообще, помогает очистка кук. Мне, во всяком случае, помогает...
g1nc
@g1nc
Mar 25 2015 14:41
в доках не описано, почему сессия умирает при отправке запроса) и на мидлваре разные токены получаются в форме и сессии, а куки не помогают, особенно когда драйвер сессии файл)
JhaoDa
@jhaoda
Mar 25 2015 14:42
@grimmH и у меня драйвер сессии — файл. И что?
ChristopherFuller
@ChristopherFuller
Mar 25 2015 14:42
всем привет! ребят, а в 4 ларе есть готовое решение, показывающее текущее число пользователей онлайн?
JhaoDa
@jhaoda
Mar 25 2015 14:43
@ChristopherFuller нету.
ChristopherFuller
@ChristopherFuller
Mar 25 2015 14:43
эхх, спасибо
g1nc
@g1nc
Mar 25 2015 14:44
всем спасибо за активную помощь) пойду поработаю под конец дня)
LaravelButler

Приветствуем Вас, @ivanboriev, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

ivanboriev
@ivanboriev
Mar 25 2015 14:47
Всем привет! Подскажите, есть какой нибудь гайд по созданию например блога на Laravel 5? Как я понимаю отличия большие с laravel 4
Alexander Popov
@ruelephant
Mar 25 2015 15:06
laravel.su + google.com
ищи на инглише
но пошаговой не встречал
Berdnikov Alexey
@aberdnikov
Mar 25 2015 15:28

Всем привет!
Кто-нибудь делал динамические поддомены?
http://laravel.su/docs/5.0/routing#sub-domain-routing
пример роута из документации работает для любой страницы поддомена кроме главной, например так

Route::group(['domain' => '{account}.myapp.com'], function()
{
    Route::get('info', function($account)
    {
        dd($account);
    });
});

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

Route::group(['domain' => '{account}.myapp.com'], function()
{
    Route::get('/', function($account)
    {
        dd($account);
    });
});

и

Route::group(['domain' => '{account}.myapp.com'], function()
{
    Route::get('', function($account)
    {
        dd($account);
    });
});

не работает, срабатывает роут для главной страницы базового домена

Роман Сохарев
@greabock
Mar 25 2015 16:38
@aberdnikov а не покажешь, как ты определяешь роут для главной страницы?

судя по тому, что ты написал ты определяешь его просто

Rotue::get('/', 'HomeController@index');

в то время, как его нужно определить

Route::group(['domain' => 'myapp.com'], function()
{
    Rotue::get('/', 'HomeController@index');
});
Роман Сохарев
@greabock
Mar 25 2015 16:44
@aberdnikov дело в том, что в ларе роуты ищутся до первого совпадения, и простой роут вида Rotue::get('/', 'HomeController@index'); вполне подходит как под url myapp.com/, так и под account.myapp.com/
LaravelButler

Приветствуем Вас, @marynate, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

LaravelButler

Приветствуем Вас, @uulearn, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

LaravelButler

Приветствуем Вас, @masters369248, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

LaravelButler

Приветствуем Вас, @manucervantes, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

LaravelButler

Приветствуем Вас, @R31N4LD0, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

Orel
@2byte
Mar 25 2015 17:38
Ахренеть, ночных эльфов ....
Alina Soboleva
@AlinaSob
Mar 25 2015 17:52
Ёлки, а что их так много??
Роман Сохарев
@greabock
Mar 25 2015 18:00
@AlinaSob тут как-то было 8 подряд
nikehaskell
@nikehaskell
Mar 25 2015 18:08
Здравствуйте, не подскажите, нет ли в laravel 5 встроенного механизма проверки E-mail?
JhaoDa
@jhaoda
Mar 25 2015 18:09
@nikehaskell проверки на что?
nikehaskell
@nikehaskell
Mar 25 2015 18:09
@jhaoda при регистрации
JhaoDa
@jhaoda
Mar 25 2015 18:10
@nikehaskell что это похоже на адрес почты или что ящик действительно существует?
nikehaskell
@nikehaskell
Mar 25 2015 18:10
*подтверждения
Andrey
@Quiss
Mar 25 2015 18:10
SMMщики есть? %)
JhaoDa
@jhaoda
Mar 25 2015 18:11
@nikehaskell подтверждение чего?
nikehaskell
@nikehaskell
Mar 25 2015 18:11
@jhaoda отправка подтверждения на указанную почту, с ссылкой для активации
JhaoDa
@jhaoda
Mar 25 2015 18:11
Когда вы уже доки-то читать начнете...
@nikehaskell так тебе проверку или подтверждение?
@nikehaskell встроенного механизма отправки подтверждения на почту нет
nikehaskell
@nikehaskell
Mar 25 2015 18:13
@jhaoda вот я все доки и перерыл
@jhaoda спасибо!
JhaoDa
@jhaoda
Mar 25 2015 18:13
Только сторонние пакеты или написать самому, там делов на 10 строк
nikehaskell
@nikehaskell
Mar 25 2015 18:18
@jhaoda а если я использую стандартную аутентификацию, уже настроенную из "коробки", можно в ней что-то изменить?? не переписывая?
JhaoDa
@jhaoda
Mar 25 2015 18:19
@nikehaskell что именно ты хочешь изменить?
censoredgit
@censoredgit
Mar 25 2015 18:21
@nikehaskell все можно
nikehaskell
@nikehaskell
Mar 25 2015 18:22
@jhaoda чтобы при регистрации на почту приходила ссылка для активации
@censoredgit как?
JhaoDa
@jhaoda
Mar 25 2015 18:23
@nikehaskell ну я же написал — там дел на 10 строк, это можно сделать в контроллере регистрации, в кишки лезть не нужно
censoredgit
@censoredgit
Mar 25 2015 18:24
@nikehaskell пиши код..
nikehaskell
@nikehaskell
Mar 25 2015 18:24
@censoredgit =)
JhaoDa
@jhaoda
Mar 25 2015 18:24
Правда, надо уточнить, что 10 строк это код генерации токена подтверждения и отправки письма :)
Обработка клика по этой ссылке и активация пользователя — еще 10 строк
nikehaskell
@nikehaskell
Mar 25 2015 18:26
и это все можно сделать в контроллере регистрации?
JhaoDa
@jhaoda
Mar 25 2015 18:26
@nikehaskell да
nikehaskell
@nikehaskell
Mar 25 2015 18:27
@jhaoda окей. еще раз спасибо
nikehaskell
@nikehaskell
Mar 25 2015 18:39
@jhaoda еще вопрос, мне тогда придется записывать код активации в таблицу в бд?? если да, смогу я удалить запись о пользователе который не подтвердил этот код? например после часа ожидания?
JhaoDa
@jhaoda
Mar 25 2015 18:40
@nikehaskell ты можешь делать что угодно, это же твой сайт
Используя, например, cron или очереди, можно создать задание, которое будет искать в базе неактивированные аккаунты и сравнивать время
nikehaskell
@nikehaskell
Mar 25 2015 18:41
@jhaoda можешь подсказать как?
@jhaoda ок
Orel
@2byte
Mar 25 2015 18:50
@nikehaskell Такое ощущения, что первый раз сайт делаешь?)
LaravelButler

Приветствуем Вас, @Timber232, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

nikehaskell
@nikehaskell
Mar 25 2015 18:58
@2byte да, все что можно было сделать стандартными средствами уже сделал
Molodkovets Bohdan
@atcdot
Mar 25 2015 19:09
Читаю Полиморфические отношения «многие ко многим». Кто-то подскажите, где почитать про то, как с ними работать, а то в доках только определение, а использование не могу понять (например как достать все видео по тегу).
JhaoDa
@jhaoda
Mar 25 2015 19:16
@ggcstop $tag->videos
Неожиданно, да?
krydima
@krydima
Mar 25 2015 19:31
Добрый вечер.
Molodkovets Bohdan
@atcdot
Mar 25 2015 19:35
@jhaoda неожиданно) буду пробовать
@krydima Добрый
а как откатить только одну миграцию (не последнюю)?
krydima
@krydima
Mar 25 2015 19:37

Добрый вечер.
создал папку app/lib
в composer прописал

"psr-4":{
          "Lib\\":"app/lib"
        }

нужно было закастомить несколько пакетов
все было ок.
НО потом стало нужно перенести эту папку в корень проекта
перенёс ,переписал в composer

"psr-4":{
          "Lib\\":"lib"
        }

и теперь пакеты не могут загрузить настройки
подскажите кто может ?
настройки все лежат в app/config/packages/и т.д

JhaoDa
@jhaoda
Mar 25 2015 19:45
@krydima ну кто ж кроме тебя знает, что ты там в пакетах кастомил и почему оно сломалось?
krydima
@krydima
Mar 25 2015 19:45
настройки не трогал
я думал может есть какая причина почему может не работает
LaravelButler

Приветствуем Вас, @GMusliaj, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

Dinar Garipov
@garf
Mar 25 2015 20:38
Доброго вечера все. :)
LaravelButler

Приветствуем Вас, @strelok, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

vahidsadri2000
@vahidsadri2000
Mar 25 2015 21:57
Hi friends
Mr.Sperber from Germany have a Online Presentation About Application Driven Network in SDN
TIme: 25th March, 7:00 pm according to Tehran's time (UTC/GMT +4:30)
if you want attended to This presentation, tell me to send ID Meeting you
Meeting is by TeamViewer Software
Vahidsadri2000@yahoo.com