Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
если последняя версия то ставь php 5.6 и apache 2.4
Как в Glide изменить файл под тем же именем или как найти в storage нужный файл glide?
firstorFaiil возвращает исключение, т.е. ты можешь его впоследствии обработать, посмотри все таки в сторону создания Request.
Очевидно, что нет результатов в модели для нового телефона, если задача стоит проверить на уникальность телефон то создай свой Request, например SellersRequest, где пропиши правила валидации, тогда твой код также сократится.
Можешь конечно оставить как есть, тогда замени firstOrFail на first
Шорткоды нужны для того чтобы человек, который работает в редакторе мог в определенный момент вставить нужный функционал в контент из текстового редактора путем вставки в него шорткода, например пусть cats - это котики, давайте ка выведем вот на этой странице котиков, и вставляет шорткод - [cats]. При чем тут циклы с массивами, в теле функции шорткода можно реализовать все что угодно, а вот как внедрить сам механизм, пока не знаю, пока есть идея по распарсиванию контента на предмет шорткода, может кто-нибудь знает более элегантное решение, кстати формат шорткодов не обязательно в скобках, это для примера.
Как реализовать шорткоды для laravel 5.1.*?
Нужно вывести на странице список категорий через шорткод в контенте, например такой:
[cats]
Как это можно сделать?
Попробуй перенести сайт в public_html полностью включая папку public, не перенося ее в корень.
После чего в папке public_html создай файл .htaccess если он не создан, если создан, то допиши в нем:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
Может кому пригодится, сделал так:
В модели Post добавил метод:
public function updateProps(array $properties)
{
foreach ($properties as $property_id=>$value) {
\DB::table('post_property')
->where('post_id', $this->id)
->where('property_id', $property_id)
->update(['value' => $value]);
}
}
В контроллере PostsController вызов такой:
$post->updateProps([$property_id=>$value]);
Подскажите, как обновить дополнительные данные в pivot таблице и есть ли возможности их синхронизации?
Есть таблица posts и есть таблица properties, связь ManyToMany, в pivot таблице есть еще колонка value
В модели Post:
public function properties()
{
return $this->belongsToMany('App\Property')->withPivot('value');
}
Пробую обновить так
$post->properties()->updateExistingPivot($post_id, [
'property_id' => $property_id,
'value' => $value
]);
где $post_id - id поста,
$property_id - id свойства property
$value - значение свойства
Ошибок никаких нет, но и обновления не происходит. Понятно что можно вручную sql запросом обновить, но должен же быть способ обойтись и без него в Laravel 5.16
Собственно говоря, что лучше использовать новый @inject шаблонизатора Blade или view->composer?
Допустим у нас есть маршруты
Route::get('{url}', [ 'as' => 'url', 'uses' => 'PagesController@show' ]);
Route::get('cats/{url}', [ 'as' => 'url', 'uses' => 'CatsController@show' ]);
Route::get('posts/{url}', [ 'as' => 'url', 'uses' => 'PostsController@show' ]);
Они выводят страницы по url в корне сайта, категории по url "cats/{url}" и посты по url "posts/{url}"
Как реализовать вывод постов по адресу:
http:/site_name/cat_name/post_url
где cat_name - url категории,
post_url - url поста
Также как реализовать вывод постов конкретной категории по адресу
http:/site_name/cat_name
Такой адрес будет перекрывать предыдущий маршрут вывода страниц:
Route::get('{url}', [ 'as' => 'url', 'uses' => 'PagesController@show' ]);
Для двух уровней сделал так:
$cat = Category::where('url', '=', $url)->published()->firstOrFail();
$cats_list = array($cat->id);
$cats = $cat->children->lists('id');
$cats = $cats->toArray();
$cats_list = array_merge($cats_list, $cats);
$posts = \App\Post::whereIn('cat_id',$cats_list)->get();
Если есть способ лучше, напишите пожалуйста.
А как быть с третьим уровнем, неужели через foreach искать всех потомков второго уровня, потом опять соединять все id в один массив?
get() убрать, а во вьюхе добавить - {!! $pages->render() !!}
$pages - переменная для вывода
Подскажите, как просто и эффективно вывести посты из многоуровневых категорий, т.е.
Есть корневая категория - новости
Есть дочернии категории - видео, фото, и т.д.
У дочерних могут быть еще вложенные категории
Посты принадлежат одной из категорий.
Чтобы вывести посты категории использую код:
$posts = Category::where('url', '=', $url)->published()->firstOrFail()->posts;
Вопрос в том, что если мы попадаем на родительскую категорию, то у нас не появятся все посты из дочерних ресурсов
Почему, если выводить поле типа boolean чекбоксом:
{!! Form::checkbox('check') !!}
А в форме убрать чекбокс, то поле не возвращает разрешенные значения: true, false, 1, 0, "1" и "0", а становится null и отсутствует в request.
Из за этого приходится писать лишние строки в контроллере на проверку присутствия поля в request, вместо стандартной request->all().
Как поправить код, чтобы когда галочка убиралась с чекбокса, то возвращалось: true, false, 1, 0, "1" или "0"?
Использовал в итоге сортировку RubaXa/Sortable, правда пока одноуровневую
Наверно Gate можно использовать, чтобы заменить права пользователей(Permissions), и отдельно добавить таблицы ролей пользователей, тогда можно будет отказаться от вышеупомянутых пакетов.
Intervention Image интересует в частности в сравнении с Glide?
В Glide чтобы вывести фото нужного размера вызываем:
{{<img class="thumb" src="{{ GlideImage::load($page->image)->modify(['w'=> 200]) }}" />
В итоге изображение берется из кеша, что очень удобно и просто.
Как я понял Intervention Image может только делать какие-то манипуляции с фото и все, т.е. код:
$resizedImage = Image::make('uploads/foto.jpg')->resize(200, 200);
не вернет фото, нужно сначала изменить фото и переименовать его, а потом использовать, что по сравнению с Glide не очень удобно.
Также так и не понял из документации, как Intervention Image работает с кешем, там есть пакет intervention/imagecache, однако у меня так и не получилось добиться от него результата, хотя старался делать по инструкции, поэтому, если кто-нибудь может описать плюсы Intervention Image, особенно по отношению к Glide, пожалуйста напишите...
В версии 5.1.11 появились authorization and policies, стоит ли теперь отказываться от сторонних пакетов, типаcartalyst/sentry, Zizaco/entrust?
Что за пакет Intervention/image? Никто не использовал? Вроде поддержка Laravel есть, также еще к нему можно прикрутить Intervention/imagecache для работы с кешем.
Она означает, что в массив $data мы передаем все поля из $request, кроме поля img, т.к. далее идет его переопределение и добавление в $data переопределенного значения img
Некоторое время тому назад задавался тем же вопросом, если интересно вот ссылка на тему - https://laravel.ru/forum/viewtopic.php?id=864
Реализация как раз через helpers
Спасибо hzone, тоже была идея при авторизации, регистрации одновременно задействовать оба ресурса.
Нужны одинаковые учетки на сайте и на форуме, чтобы пользователь логинился один раз. Также нужно чтобы в личном кабинете на сайте могла выводиться информация с форума для пользователя который залогинен, например активные темы, новые ответы и т.д. и т.п. Если есть у кого опыт интеграции с форумными движками, подскажите в какую сторону копать.
Какие есть решения для интеграции laravel с форумами? В частности интересует vBulletin, но можно и с другими форумными движками?