Laravel по-русски

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

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

#1 Laravel 5.x » Отношения через несколько ключей » 08.09.2017 15:52:33

Ilya_Bobrov
Ответов: 1

Добрый день, камрады!
Есть задача получить связанную запись через отношения в модели, используя два ключа для выборки phone и user_id.
Пример:

namespace Platform\Models\Members;

use Illuminate\Database\Eloquent\Model;

class BlackList extends Model
{
    public function members()
    {
        return $this->belongsToMany('Platform\Models\Members\Member', 'members', 'phone', 'phone');
    }

}

Потом использую

$oData = \Platform\Models\Members\Member::orderBy($aColumn[$order_by], $order)
$oData->load('blacklist');

Как сделать так, чтобы грузились отношения через $oData->load('blacklist'); ограниченные  user_id?

#2 Laravel 5.x » Pusher - отправка уведомлений » 25.08.2017 11:34:26

Ilya_Bobrov
Ответов: 1

Добрый день, нужна помощь!  Я новичек в Laravel, по этому что то делаю не так.
Суть задачи из очереди отправлять уведомления через сервис pusher о статусе обработки файла.
Написал простенький класс для этого
Laravel 5.4
PHP 7.1

<?php
namespace Platform\Controllers\Core;

use Pusher\Pusher;

class Notify  extends \App\Http\Controllers\Controller {

    protected $pusher;
    protected $channel;

    function __construct($userId)
    {
        $this->channel = 'pusher-channel-'.$userId;
        $options = array(
            'cluster' => 'eu',
            'encrypted' => true,
            'debug'=>true
        );
        $this->pusher= new Pusher(env('PUSHER_KEY'),
            env('PUSHER_SECRET'),
            env('PUSHER_APP_ID'),
            $options);
//        var_dump($this->pusher);
    }

    public function ImportFileProgress($percent=0){
        $data=array('type'=>'success', 'display'=>false, 'event'=>'ImportFileProgress', 'percent'=>$percent);
        return $this->pusher->trigger($this->channel,$this->channel,$data);
    }

    public function ImportFileSuccess($filename){
        $data=array('type'=>'success', 'display'=>true, 'event'=>'ImportFileSuccess', 'message'=>trans('global.ImportFileSuccess').': '.basename($filename), 'caption'=>trans('global.ImportFileSuccess'));
        return $this->pusher->trigger($this->channel,$this->channel,$data);
    }

    public function ImportFileError($error){
        $data=array('type'=>'error', 'display'=>true, 'event'=>'ImportFileError', 'message'=>trans('global.ImportFileError').': '.$error, 'caption'=>trans('global.ImportFileError'));
        return $this->pusher->trigger($this->channel,$this->channel,$data);
    }
}

В итоге если вызывать методы ImportFileProgress, ImportFileSuccess, ImportFileError из контроллера Laravel - то уведомления отправляются и все работает как задумано, но если эти методы вызвать из очереди задания, то получаю отлуп от pusher с таким текстом:

Invalid signature: you should have sent HmacSHA256Hex("POST\n/apps/383165/events\nauth_key=2ee43460dbb6e07b105f&auth_timestamp=1503649285&auth_version=1.0&body_md5=d921ab284fa29d779e368403f90ee208", your_secret_key), but you sent "54e6d34a14fe74975a3ac6e39fc18044b2696b5ba33ad83898f7207dce6019ba"

В чем может быть проблема, подскажите?

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