Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Re: Laravel 5.x » Middleware не видит пользователя. » 15.01.2018 12:28:39

Коллеги, столкнулся с такой же проблемой на 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');
    });

#2 Laravel » Telegram SDK » 14.06.2017 11:00:46

purplefreak
Ответов: 2

Здравствуйте. Столкнулся с такой проблемой.
Пишу бота для 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;
    }

}

Очень надеюсь на Вашу помощь!

#3 Re: Laravel 5.x » Конструктор запросов » 17.03.2017 16:54:34

Да, на этом варианте я и остановился, просто хотелось узнать, нельзя ли сделать этот запрос более элегантным. Спасибо. Вот конечный  рабочий код:
$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();

#4 Re: Laravel 5.x » Конструктор запросов » 16.03.2017 16:57:14

Да, спасибо, увидел что выражение получается лишенным всякой логики, тогда следовательно вопрос - если я вызываю все поля запросом такого вида:

$data= Report_designer::select('manager','prefics','apruv','denial','handing','injob','brak')->groupby('manager')->get();

как мне применить к ним агрегатные функции, например посчитать поле sum(apruv), если писать это в сыром виде в коде то, фреймворк говорит что либо функция sum() не определена или что поле `sum(apruv)` в таблице не найдено

#5 Laravel 5.x » Конструктор запросов » 16.03.2017 11:16:11

purplefreak
Ответов: 4

Доброго времени суток
Возникли проблемы с использованием конструктора запросов, а конкретнее появились несколько вопросов:
- как использовать в конструкторе хранимые процедуры/функции?
- как использовать в конструкторе сложные операторы типа 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();

#6 Re: Laravel 5.x » Запись данных при регистрации в несколько таблиц » 13.03.2017 11:37:42

Проблема решена.
Вот готовый код решения:
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; 
    }

#7 Laravel 5.x » Запись данных при регистрации в несколько таблиц » 13.03.2017 11:33:27

purplefreak
Ответов: 2

Доброго времени суток.
Есть следующий вопрос. Стандартный 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?

#8 Re: Laravel 5.x » Элементы интерфейса в laravel » 01.03.2017 16:22:39

Спасибо. Загвоздка у меня оказалась не в этом! А в том что была четкая уверенность, что передавать из контроллера я смогу только один массив данных. Разобрался!

#9 Re: Laravel 5.x » Элементы интерфейса в laravel » 28.02.2017 21:14:33

То есть, собирать по частям объект в контроллере, и отправлять его в работающее представление?

#10 Laravel 5.x » Элементы интерфейса в laravel » 24.02.2017 20:07:14

purplefreak
Ответов: 6

Господа, подскажите пожалуйста, есть ли возможность добавления в шаблон селекта / комбо-бокса, забирающего свои значения из бд. Не могу найти ответ на этот вопрос! Заранее благодарен.

Подвал раздела