Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Коллеги, столкнулся с такой же проблемой на lumen 5.5
Проблема решилась переносом middleware в группу route*Middleware
$app->routeMiddleware([
'auth' => App\Http\Middleware\Authenticate::class,
'access' => App\Http\Middleware\AccessMiddleware::class
]);
И переписыванием вызова посредника из-под маршрутизатора, а не из конструктора контроллера:
$router->group(['middleware' => 'access'], function ($router) {
$router->get('managerstatistics','Reports\ManagerStatisticsController@Index');
});
Здравствуйте. Столкнулся с такой проблемой.
Пишу бота для telegram, для отправки сообщений пользователям используется get запрос, и все протекает успешно, для приема сообщений api отправляет POST, и возникает 405 ошибка (Неопознанный метод). Не пойму в чем проблема.
Вот route:
Route::get('/telegram','telegram\TelegramController@Index');
Route::post('/telegram/' . config('telegram.bot_token'). '/webhook','telegram\TelegramController@SetWebhook');
Вот сам контроллер:
class TelegramController extends Controller
{
public function Index()
{
$response = Telegram::sendMessage([
'chat_id' => '247343584',
'text' => 'word'
]);
}
public function SetWebhook() {
$response = Telegram::setWebhook(['url' => 'https://telegram.finereports.info/telegram/'.env('TELEGRAM_BOT_TOKEN').'/webhook']);
return $response;
}
}
Очень надеюсь на Вашу помощь!
Да, на этом варианте я и остановился, просто хотелось узнать, нельзя ли сделать этот запрос более элегантным. Спасибо. Вот конечный рабочий код:
$data= Report_designer::select(DB::raw('manager,'
. 'prefics,'
. 'count(*) as `leads`,'
. 'SUM(apruv) as `apruv`,'
. 'SUM(denial) as `denial`,'
. 'SUM(handing) as `handing`,'
. 'SUM(injob) as `injob`,'
. 'SUM(brak) as `brak`,'
. 'ROUND((SUM(apruv)/count(*))*100) as `perc`,'
. 'ROUND((SUM(apruv)/(count(*)-SUM(brak)))*100) as `konv`,'
. 'ROUND(SUM(total_sum)/SUM(apruv)) as `avg`,'
. 'ROUND((SUM(paid)/SUM(apruv))*100) as `deliv`,'
. 'ROUND(SUM(total_sum),2) as `total_sum`'))
->whereBetween('createdtime',[$request->dateFrom,$request->dateTo])
->groupby('manager')
->get();
Да, спасибо, увидел что выражение получается лишенным всякой логики, тогда следовательно вопрос - если я вызываю все поля запросом такого вида:
$data= Report_designer::select('manager','prefics','apruv','denial','handing','injob','brak')->groupby('manager')->get();
как мне применить к ним агрегатные функции, например посчитать поле sum(apruv), если писать это в сыром виде в коде то, фреймворк говорит что либо функция sum() не определена или что поле `sum(apruv)` в таблице не найдено
Доброго времени суток
Возникли проблемы с использованием конструктора запросов, а конкретнее появились несколько вопросов:
- как использовать в конструкторе хранимые процедуры/функции?
- как использовать в конструкторе сложные операторы типа CASE/IF?
- и главное, по документации составил запрос, выдает ошибки в разных местах на использование функций SUM,WHEREBETWEEN и.т.д.
Вот, собственно, сам запрос к модели:
$data = Report_designer::whereBetween('createdtime',['2017-03-01','2017-03-15'])
->count()
->sum('apruv')
->sum('denial')
->sum('handing')
->sum('injob')
->sum('brak')
->groupby('manager')
->get();
Проблема решена.
Вот готовый код решения:
protected function create(array $data)
{
$User = User::create([
'first_name' => $data['first_name'],
'sur_name' => $data['sur_name'],
'second_name' => $data['second_name'],
'phone' =>$data['phone'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
Administration::create([
'user_id'=>$User->id,
'department_id'=>'0',
'group_id'=>'0',
'ruller_group_id'=>'0',
'roll_id'=>'0'
]);
return $User;
}
Доброго времени суток.
Есть следующий вопрос. Стандартный auth-controller функция создания пользователя:
Необходимо сделать запись в таблицу привилегий с соответствующим user_id при регистрации нового пользователя. Как я это вижу:
protected function create(array $data)
{
Administration::create([
'user_id'=>'???',
'department_id'=>'0',
'group_id'=>'0',
'ruller_group_id'=>'0',
'roll_id'=>'0'
]);
return User::create([
'first_name' => $data['first_name'],
'sur_name' => $data['sur_name'],
'second_name' => $data['second_name'],
'phone' =>$data['phone'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
Так вот вопрос, как элегантно получить id пользователя для записи в таблицу administration и что возвращает функция User::create?
Спасибо. Загвоздка у меня оказалась не в этом! А в том что была четкая уверенность, что передавать из контроллера я смогу только один массив данных. Разобрался!
То есть, собирать по частям объект в контроллере, и отправлять его в работающее представление?
Господа, подскажите пожалуйста, есть ли возможность добавления в шаблон селекта / комбо-бокса, забирающего свои значения из бд. Не могу найти ответ на этот вопрос! Заранее благодарен.
Страницы 1