Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Я примерно так и сделал, кст не могли бы вы посмотреть пожалуйста вот эту тему https://laravel.ru/forum/viewtopic.php?pid=12983
это меня побольше интересует)
foreach (AnalyticsVisitor::where('date', '>=', $daterangepicker_start)->where('date', '<=', $daterangepicker_end)->groupBy($stat)->orderby($stat, 'asc')->get() as $AnalyticsV) {
$total = AnalyticsImp::whereIn('visitor_id', AnalyticsVisitor::where('date', '>=', $daterangepicker_start)->where('date', '<=', $daterangepicker_end)->where("$stat", $AnalyticsV->$stat)->pluck('id')->toArray())->where('group_id', '=', $id)->count();
$uniq = AnalyticsVisitor::whereIn('id', AnalyticsImp::where('group_id', '=', $id)->pluck('visitor_id')->toArray())->where("$stat", $AnalyticsV->$stat)->where('date', '>=', $daterangepicker_start)->where('date', '<=', $daterangepicker_end)->count();
$backup = AnalyticsImp::whereIn('visitor_id', AnalyticsVisitor::where('date', '>=', $daterangepicker_start)->where('date', '<=', $daterangepicker_end)->where("$stat", $AnalyticsV->$stat)->pluck('id')->toArray())->where('group_id', '=', $id)->where('backup', '=', 1)->count();
$Data[] = [
'name' => $AnalyticsV->$stat,
'total' => $total,
'visits' => $uniq,
'backup' => $backup
];
}
if ($stat != "date") {
usort($Data, function ($a, $b) {
return $b['visits'] - $a['visits'];
});
}
Да я нашел)
ошибка была в том, что не дал прав юзеру пхп фпм
Перенес проект на другой сервер, конфиги те же, но отдает белый лист, уже все проверил, не могу понять что не так, подскажите пожалуйста
Что если создать контроллеры по названию пермиссионс, проверять авторизован ли юзер и выводить его роль которая будет подставляться в роутинг и отправлять на нужный контроллер?
Есть 3 таблицы
1)group
id title data ...
2)ticket
id group_id user_id data ...
3)user
id way time amount ...
Суть, мне нужно вывести таблицей данные (имя группы / количество пользователей купивших билеты / количество купленных билетов относительно группы) получить данные по билетам, но вывести я должен их основываясь по группе.
Что я делаю:
получаю список всех групп, передаю в вьювер, в вьювере перебираю массив и обращаюсь в модель, по иду вытаскиваю с таблицы билеты количество купленных, потом в этой же итерации обращаюсь к тикетам опять же. забираю юсер иды, и передаю их в таблицу юзер и считаю юзеров.
Как это можно упростить? ибо пару раз получал ошибку 502 когда было больше 500к тестовых "покупок"
Делал через hasMany
в другом месте подобную задачу реализовал сдлеющим образом
запрашиваю всех юзеров передаю в форыч, пробигаю по всем и с помощью гроуп бай забирал все билеты по данному юзеру добавляя запрос whereIn и запрос в таблицу гроуп что бы забрать удовлетворящие иды по гроуп ид
Чуть позже могу скинуть запросы, просто в соседней теме прочитал, что агригировать 3 раза не гуд, вот и понять пока не могу как лучше реализовать задачу? либо менять структуру бд
Уже установил! спасибо!
Спасибо) В нем я смогу посмотреть все запросы что вообще делает приложение? и время на их выполнение?
Как посмотреть все запросы к бд от ларавеля в нативном (чистый sql) виде? именно все
dd() я так понимаю не подойдет
Request::ip() похоже нашел о чем вы))
или вы предлогаете лучше юзать геоип первую версию и переменки передавать в ларавел?
я уже смирился с тем, что отдаю эту работу ларавел
у меня нгинкс, поставил просто геоип либу для пхп к ларавелю и все) или как в ларавел получить $_SERVER['REMOTE_ADDR'] ? $_ENV?
1)думал через нгинкс, но собранный модуль геоип2 не захотел работать на дебиане 8, просто геоип не подойдет у меня бд не дат формата, а их нового
2)определение делаю через пхп(ларавел)
ип нахожу через такую проверку
if(!empty($_SERVER['HTTP_CLIENT_IP'])){
$visitor_ip = $_SERVER['HTTP_CLIENT_IP'];
}elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
$visitor_ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}else{
$visitor_ip = $_SERVER['REMOTE_ADDR'];
}
или как лучше? именно через пхп (ларавел)
установил, только не понял где это взять?
maxmind-db/reader suggests installing ext-gmp (bcmath or gmp is requred for decoding larger integers with the pure PHP decoder)
maxmind-db/reader suggests installing ext-maxminddb (A C-based database decoder that provides significantly faster lookups)
только где это взять? по запросу
https://github.com/leev/ngx_http_geoip2 … /issues/14
мне вот что вышло)))
ну я хочу https://github.com/leev/ngx_http_geoip2_module это заюзать) место либы в пхп)
насчет либы я так понял мне н е хватало курла у пхп 5
у меня дебиан)
странно, что на директорию домена стоит через пхп фмп пхп 7, а он мне пишет пхп 5
я пока через нгинкс ъолчу все таки сделать, что бы вытаскивать из переменок сервера, вот только как сделать подобную проверку
if(!empty($_SERVER['HTTP_CLIENT_IP'])){
$visitor_ip = $_SERVER['HTTP_CLIENT_IP'];
}elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
$visitor_ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}else{
$visitor_ip = $_SERVER['REMOTE_ADDR'];
}
в нгикс
просто у меня включен курс в пхп 7
composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- maxmind/web-service-common v0.3.1 requires ext-curl * -> the requested PHP extension curl is missing from your system.
- maxmind/web-service-common v0.3.0 requires ext-curl * -> the requested PHP extension curl is missing from your system.
- geoip2/geoip2 v2.5.0 requires maxmind/web-service-common ~0.3 -> satisfiable by maxmind/web-service-common[v0.3.0, v0.3.1].
- Installation request for geoip2/geoip2 ^2.5 -> satisfiable by geoip2/geoip2[v2.5.0].
To enable extensions, verify that they are enabled in your .ini files:
- /etc/php5/cli/php.ini
- /etc/php5/cli/conf.d/05-opcache.ini
- /etc/php5/cli/conf.d/10-pdo.ini
- /etc/php5/cli/conf.d/20-gd.ini
- /etc/php5/cli/conf.d/20-json.ini
- /etc/php5/cli/conf.d/20-mcrypt.ini
- /etc/php5/cli/conf.d/20-mysql.ini
- /etc/php5/cli/conf.d/20-mysqli.ini
- /etc/php5/cli/conf.d/20-pdo_mysql.ini
- /etc/php5/cli/conf.d/20-readline.ini
You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.
-------------
я правильно понял, что нужно доставить ext-curl?
[InvalidArgumentException]
Could not find package geoip2/geoip at any version for your minimum-stability (stable). Check the package spelling or your minimum-stability
при composer require geoip2/geoip2
require_once 'vendor/autoload.php';
я про это
или
1)установил
2)use GeoIp2\Database\Reader; заюзал
3)$reader = new Reader(файл) так? или можно вот так Reader::(файл)?
подключение всяких автолоадеров не нужно?
просто установил и new \GeoIp2\Database\Reader(PRJ_ROOT . 'var/GeoLite2-City.mmdb') и работаешь?
а то я уже через нгикс парсинг бд делаю
https://github.com/Torann/laravel-geoip
https://github.com/pulkitjalan/geoip
нашел 2 модуля под ларавел, но в них предусмотрено подключение только 1 базы, как подкдючить например 2 бд сити дб и исп дб
например в в пхп ридере максмайнда (не ларавел) $reader = new Reader('/usr/local/share/GeoIP/GeoIP2-City.mmdb');
и можно создать несколько ридеров с нужными бд, тут я не совсем понял как, покрайне мере мои попытки привели к ошибкам
Кто-то сталкивался с таким?
Proger_XP, вы видимо не поняли о чем я...но да бог с ним, я высказал свою точку зрения по поводу решения проблемы, если у тса выйдет на 1 домене связать шттпс протокол + шттп - пусть отпишется в теме ибо я как-то пробовал сделать подобное, но у меня не вышло ибо у меня стояла переадресация с шттп на шттпс и ее нужно было оставить, если у тса такого нет(переадресации), то возможно вы и правы...