Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
php /path/to/composer.phar composer global require "laravel/installer=~1.1" выдает ошибку
а пробовал не писать масло масленное?
php /path/to/composer.phar global require "laravel/installer=~1.1" обычно НЕ выдает ошибку
Подскажите, можно писать роуты типа:
Route::get('/user/{id}/{title}','AuthController@index'); ?
C {title} работает, вместе с {id} выдает ошибку
Нашел ошибку: В title пишу хэш, а у него есть символы '/', поэтому выдает ошибку.
Подскажите как передать в адресной строке слэш
а зачем в хэше нужен символ "/" ?
а зачем вообще титул в адресной строке?
вы как собираетесь обрабатывать национальные символы? арабицу например...
если будет происходить транслитерация, то это ещё приемлемо, но в другом случае - нет.
хотите обработать сео-ссылку , - делайте как взрослые люди
Route::get('/user/{id}-{title}'
в контроллере отсекаете всё, что за первой цифрой, включая дефис.
далее, получив id уже работаете с моделью.
нет, спасибо. работы много, личная жизнь полна приключений... не хочу обнадёживать, но спрашивай трудные места на форуме. кто-то поможет всегда.
через модельки/orm - можно.
запросами работать, это как граблями снег подметать на футбольном поле во время снегопада.
+ 800 простых запросов SELECT FROM WHERE в php рекурсии быстрее работают, чем кол-во JOIN'ов равное количеству уровней дерева. это относительно деревьев...
2 варианта действия.
1) вышеописанный Progdancer - через счётчик .
только недописан вариант: проверка должна быть вида ($x%3 == 0)?true:false -- это грубая проверка на каждое третье вхождение
2) генерить под каждую колонку контент отдельно, 3 раза.
спорить, что это нагружает сервер не нужно. PHP обычно кушает до 40% от массы SQL, - зачастую стоит подумать об оптимизации серверного окружения...
1.
$client = $this->client->store($request->all());
совет:
$client = $this->client->store($request->except(['_token']));
+ там же указать всё, что не должно входить в модель. это правило хорошего тона.
2.
что тебе говорит термин setter/getter ?
если бд PostgreSQL то используй ILIKE и забудь о проблеме
бд/таблицы mysql должны быть в кодировке utf8_general_ci
где ci - означает непривязанность к регистру.
Не изобретайте велосипед
Ещё ни один проект не вышел на достаточную динамичность переподключаемых ассетов в зависимости от страницы.
Ни одна подобная поделка мной в Production не замечена, и есть о чём задуматься.
Поэтому используйте 1 из двух вариантов:
1) всегда все ссылки и редиректы прогоняйте через https -- URL::secure('/assets/bootstrap/css/bootstrap.min.css')
потому что в скором времени даже мозила откажется от не секьюрного протокола передачи данных.
http://habrahabr.ru/post/252507/
2) альтернативный способ для работы (ТОЛЬКО) с ассетами -- писать абсолютные пути от DOCUMENT_ROOT хоста -- '/assets/bootstrap/css/bootstrap.min.css'. этот метод обеспечит динамичность выбора протокола (он не указан в ссылке) средствами браузера.
То есть если вы открываете http, то бессмысленно писать ассеты в https и наоборот - огребёте варнинги и ошибки.
идельно описано по ссылке выше - пишите по варинту 2 и не придумывайте велосипед. лучше всё равно не придумаете.
ну а сам-то как думаешь, что нужно предпринять, чтобы это реализовать?
объяви свой ход мысли... даже интересно модельку заюзал, а элементарщину сделать не смог...
возможно у него document_root не в public )))))))
...как всегда у новеньких...
ТС исмел (вероятно) ввиду класс-сателлит или некую библиотеку с рнр-"функционалом"
- сделай модельку Lib и клади в неё статические функции. в принципе обеспечит все нужды
вызов \App\Lib::myMethod($params);
или {{\App\Lib::myMethod($params)}} <= это в принципе нарушение mvc; и не вызывай методы из шаблона, которые не взаимодействуют с View (то есть в итоге view ничего не выводят) - это мягко-говоря уже грубое нарушение mvc
а по правильному читай мануалы. есть ещё и респонзер у лары
Матчасть:
изучи термин программирования:
"точка входа в приложение"
"точка конфигурирования приложения"
Практическая честь:
- сделай маршрут/контроллер, обрабатывающие конкретные запросы.
при этом проверяй условия кто, откуда и как запросил (обеспечь безопасность, чтобы не уДдОсИлИ)
и на выхлоп echo json_encode > die
надо сначала думать, а потом гуглить, а то вопросы будут неверные...
1) зависит от форума и его апи.
2) возможно и лару и форум стоит завернуть на 3-й ресурс со своим апи.
исследуй тему SSO - Single Sign On
суть темы в том, что авторизация (ПОСТ-запрос) уходит на 3й сайт, он ставит куку авторизации, и последовательно кидает (редиректом например) на все ресурсы своей сети, где везде проставляет куки авторизации (типа уже вошёл).
всё. авторизован везде. больше ничего не надо делать.
чтобы обеспечить динамичность в безопасности - каждый хит дёргает некий ключ в бд, и если он отсутствует - деавторизует.
таким простым способом сможешь контролировать пользователей, кторые шалят.
чтобы выдать решение (solution) необходимо иметь техническое задание (tech specification)
не туда. удалить.
ну если поиском никак не воспользоваться, то включи мозг и почитай список тем.
пивоты, усложнение жизни
Выборка с БД через 3ю таблицу
наконец почитать документацию
http://laravel.com => Documentation (http://laravel.com/docs/5.0) =>
1) http://laravel.com/docs/5.0/eloquent#relationships
2) http://laravel.com/docs/5.0/schema
Не стоит начинать изучать повозку с экскрементальных крошек на дороге
Админ! Переименуй плиз тему в "Сложные пивоты, полиморфы, их count() и другое"
Тема обещает быть интересной, если народ не слезет.
пока использую следующее решение:
public function countPosts()
{
return $this
->hasMany( 'App\Post', 'postable_id' )
->selectRaw( 'postable_id, count(*) as count' )
->where('postable_type', '=', 'App\Bort')
->groupBy('postable_id');
}
{{$blog->countPosts->first()->count}}
Это решение из инета и оно устраивает (пока) только по причине предварительного сбора данных на уровне контроллера/модели, а не дёрганья их из вьюшки
Однако интересное решение, НО.
Представь, что это нужно (в принципе других ТЗ не существет), чтобы показать во вьюшке, ради того, чтобы информировать сидящего перед монитором. Не более, ни менее.
И так уже MVC в ларе прозрачный до такой степени, что уже задумываешься "а нахрена".
Т.е. во вьюшке я должен сказать
{{$blog->posts()->count()}}
Согласитесь, что хоть и работает, но ЭТО НЕ ПРАВИЛЬНО !
установи EMS SQL Manager (для твоей БД My/Pg/Ora/MS)
ТАМ отладь свой запрос, и уже на основе него-родного пиши в ларе.
(все) будьте разумнее!