Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''laravel''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Todas as áreas do Fórum

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Encontrado 104 registros

  1. emersonandree

    Problemas com retorno AJAX(LARAVEL)

    <script type="text/javascript"> $(document).ready(function(){ $('#btn_busca_f').click(function () { var data_ini = $('#data_ini').val(); var data_fim = $('#data_fim').val(); var cod_recurso = $('#cod_recurso').val(); var cod_funcionario = $('#cod_funcionario').val(); var num_op = $('#num_op').val(); $.ajax({ type: 'post', async: false, url: '/intranet/ExportaFimApontamento', data:{ '_token': '{{csrf_token()}}', 'data_ini': data_ini, 'data_fim': data_fim, 'cod_recurso': cod_recurso, 'cod_funcionario': cod_funcionario, 'num_op': num_op }, erro: function () { alert('erro'); }, success: function (data) { return (data); alert('Excel Gerado com Sucesso!'); } }); }); }); </script> este script executa uma função no controller onde ele gera um arquivo excel.xls, porem se eu executar a função direto no controler ele funciona, se eu executar com o script ele funciona mas nao gera o arquivo.xls alguem sabe como posso fazer para que ele baixe o arquivo la na função?
  2. eduardojc

    (iniciante em Laravel ) - rowspan Laravel + Bootstrap

    Boa tarde pessoal, tenho uma tabela que busca os valores no meu MYSQL. Tenho um id ( 199917 ) por exemplo. Ele aparece 10x no meu banco de dados 1 - 199917 data1 peso1 2 - 199917 data2 peso2 3 - 199917 data3 peso3 ..... etc Precisaria retornar da seguinte forma minha tabela 199917 - data1 peso1 data2 peso2 data3 peso3 199939 - data1 peso1 data2 peso2 data3 peso3 em anexo está as imagens, ficaria grato se puderem ajudar, dei uma pesquisada vi que tem rowspan, mas não faço ideia de como agrupar. Tabela 1 como está, tabela 2 como gostaria que ela fica-se meu Código: <div class="linha"></div> <div class="container"> <table class="table table-striped"> <thead class="thead-dark"> <tr> <th rowspan="1">Brinco</th> <th scope="col">Peso</th> <th scope="col">Data</th> <tr> </thead> @foreach($listagem as $lista) <tbody> <tr> <td rowspan="1">{{$lista->brinco_id }}</td> <td>{{$lista->peso }}</td> <td>{{ \Carbon\Carbon::parse($lista->data)->format('d/m/Y') }}</td> </tr> </tbody> @endforeach </table> </div>
  3. Meu listener está sendo chamado duas vezes, mas o evento só é disparado uma vez. Eu copiei a base do código da documentação do Lumen 5.7 e aparentemente está tudo configurado corretamente. Não consigo encontrar o problema. bootstrap/app.php $app->register(App\Providers\EventServiceProvider::class); app/Providers/EventServiceProvider.php protected $listen = [ 'App\Events\NewAuthEvent' => [ 'App\Listeners\SendNewAuthListener', ], ]; app/Events/NewAuthEvent.php use Illuminate\Queue\SerializesModels; use App\Data\Entity\User; use App\Data\Entity\Authorization; use Illuminate\Support\Facades\Log; class NewAuthEvent { use SerializesModels; public $user; public $auth; public function __construct(User $user, Authorization $auth) { Log::debug("Disparado uma vez"); $this->user = $user; $this->auth = $auth; } } app/Listeners/SendNewAuthListener.php use App\Events\NewAuthEvent; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; use App\Data\Service\MessengerService; use Illuminate\Support\Facades\Log; class SendNewAuthListener { private $messenger; public function __construct(MessengerService $messenger) { Log::debug("Chamado duas vezes"); $this->messenger = $messenger; } public function handle(NewAuthEvent $event) { Log::debug("Chamado duas vezes também"); $this->messenger->new($event->user, $event->auth); } } Disparando o evento: event(new NewAuthEvent($objUser, $objAuthorization)); Estou me esquecendo de algum parâmetro ou configuração? Agradeço desde já!
  4. bobzznnn

    Api-- converter "Valor" em BitCoin

    Preciso de um script que converta o saldo atual do meu website em bitcoin. Assim que eu possa colocar de forma que esteja junto ao "Valor" da conta. O Script que puxa o valor é esse: <div class="row"> <div class="col-md-3 col-sm-6 col-xs-12"> <div class="info-box"> <span class="info-box-icon bg-aqua"><i class="fa fa-usd"></i></span> <div class="info-box-content"> <span class="info-box-text">MEU SALDO</span> <span class="info-box-number">U$ <?php $saldo = Auth::user()->saldo; echo e(number_format($saldo, 2, '.', ',')); ?></span> </div> </div> </div>
  5. Olá a todos! Eu comecei mexer com Laravel hoje e até conseguir criar um novo projeto, mas eu preciso abrir e rodar um projeto existente e não estou conseguindo. Ele pede o arquivo autoload.php que não está no projeto. Eu já instalei o Banco de Dados desse projeto sem problemas. Eu instalei o Composer, mas não coloquei a URL de referência. Eu uso o Wamp Server 3.0.6, com Apache 2.4.23, PHP 5.6.25 e MySQL 5.7.14. Eu preciso instalar mais alguma coisa? Esqueci de fazer alguma configuração? Por favor, preciso de ajuda.
  6. Boa noite pessoa! Como vão? Meu site foi feito em laravel e está rodando em hospedagem compartilhada, tudo funciona bem, menos as imagens quando são feitos upload (aparecem um x e não carrega imagem), O site grava as fotos corretamente no diretório public/uploads e carrega no diretório raiz a pasta uploads (onde não tem nenhuma imagem). Como faço para trocar a instrução de puxar a imagem em public/uploads ao invés da pasta uploads? abs.
  7. ElytonSilva

    Como salvar dados que vem do foreach - LARAVEL

    -- Controller Lista os dados do usuário no card public function listardados(){ $matricula = Matricula::where('user_id', Auth::id())->get(); //dd($matricula); return view('dashboard.renovacao.teste', compact( 'matricula')); } -- Controller Salvar os Registros public function store(RenovacaoRequest $request){ $user = Auth()->user(); $dados = $request->all(); $renovacao = Renovacao::create($dados); return view('dashboard.renovacao.confirmacao', compact ('renovacao')); } -- View form @extends('layouts.app') @section('content') <div class="container"> <div class="row"> <form class="form-horizontal " id="regForm" action="{{route('renovacao.store')}}" method="POST"> <div class="card-panel white"> <h4 class="center">Solicitar Renovação</h4> <div class="row"></div> {{ csrf_field()}} <right> <a>**Dados Cadastrados**</a> </right> <div class="row"></div> <div class="row"></div> <div class="row"> @foreach($matricula as $matric) <div class="row"> <div class="col s6 m6"> <div class="input-field {{$errors->has('user_id') ? 'has-error' : ''}} "> <label for="produto">Nome do Pai:</label> <input type="text" class="form-control" name="nomerespo" value="{{ $matric->nomedopai }}"> </div> </div> <div class="col s6 m6"> <div class="input-field {{$errors->has('user_id') ? 'has-error' : ''}} "> <label for="produto">Nome do Aluno(a):</label> <input type="text" class="form-control" name="nomealuno" value="{{ $matric->nomealuno }}"> </div> </div> </div> @endforeach <div class = "row"> <div class="col s12"> <a title="Voltar Para Página Principal" class="btn orange darken-4 btn-info left " href="/admin">Voltar <i class="material-icons left">arrow_back_ios</i> </a> <button type="submit" class="btn orange darken-4 btn-info right">Confirmar <i class="material-icons left">save</i> </button> </div> </div> </div> </div> </form> </div> </div> @endsection No id do usuário ele tem 2 registro só que na hora de salvar ele só salva 1 registro e não os 2 como deveria Como Código acima Utilizando dd($dados) ; ele retorna isso e não traz os outros formulários que estava preenchidos que são as mesma coisa array:3 [▼ "_token" => "MZOBw295E6W5SEtPPnsvV4seev2GeH3M94rsrI71" "nomerespo" => "Mario" "nomealuno" => "Maria Joaquina" ] 1- Ele traz da tabela matricula o user_id relacionado ao usuário logado, automaticamente ele traz e joga no form e nele usuário verificar o nome do responsável e o nome do filho e clica no botão para salvar para confirmar. print -> https://prnt.sc/llsn19 2 - Depois que salva o adm vai na aba relatório para verificar se todos os campos foram salvo só que ele só ta salvando o ultimo nome do aluno e do pai queria que salve todos os dados... como estava no primeiro print. print tela do adm -> https://prnt.sc/llsof3
  8. ElytonSilva

    Dúvida gerar relatório

    Alguém pode me dizer como eu gero um relatório de uma determinada data ? Ex: 30 dias Obs.: O sistema está sendo feito em linguagem php e também estou usando o Framework LARAVEL $usuarios = Usuario::select(DB::raw('MONTH(created_at) AS mes, count(id) AS qtd')) ->groupBy(DB::raw("MONTH(created_at)")) ->orderBy('mes') ->where('Usuario', 'O') ->pluck('mes', 'qtd') ->toArray(); // dd($usuarios);
  9. rnicson

    Selecionar de acordo com usuário

    Possuo um script que seleciona Eventos de acordo com o dia,porém quero implementar uma condição que selecione de acordo com uma coluna que criei chamada user. <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Event; use MaddHatter\LaravelFullcalendar\Facades\Calendar; class EventController extends Controller { public function index() { $events = []; $data = Event::all(); if($data->count()) { foreach ($data as $key => $value) { $events[] = Calendar::event( $value->title, true, new \DateTime($value->start_date), new \DateTime($value->end_date.' +1 day'), null, // Add color and link on event [ 'color' => '#ff0000', 'url' => 'pass here url and any route', ] ); } } $calendar = Calendar::addEvents($events); return view('home', compact('calendar')); } } Minha dúvida seria onde se encaixa essa condição? where user = ...
  10. Olá pessoal, estou tentando uma conexão usando o Eloquente ORM (que é utilizado pelo Laravel) no meu micro-framework. Mas por alguma razão eu não estou conseguindo. Alguém pode me ajudar? # DS é uma variável global para separar diretórios # ROOT2 é uma variável global com o caminho do servidor até meu arquivo index #Minha arquitetura de pasta é app - Storage - Database -database.db public_html -index.php (neste arquivo que faço o require que chama o bootstrap.php onde faço minha conexão #Erro que retorna do servidor: Uncaught Error: Call to a member function addConnection() on null in /home3/thewebid/app/Core/bootstrap.php:24 <?php /*start illuminate database*/ $conf = require_once ROOT2."App".DS."database.php"; if($conf['baseModel'] == 'illuminate'){ $capsula = new Illuminate\Database\Capsule\Manager; if($conf['drive'] == 'mysql'){ $capsule->addConnection([ 'driver' => 'mysql', 'host' => $conf['mysql']['host'], 'database' => $conf['mysql']['database'], 'username' => $conf['mysql']['user'], 'password' => $conf['mysql']['pass'], 'charset' => $conf['mysql']['charset'], 'collation' => $conf['mysql']['collation'], 'prefix' => '', ]); } elseif($conf['drive'] == 'sqlite'){ $capsule->addConnection([ 'driver' => 'sqlite', #já tentei usar o caminho com a extensão do arquivo e sem ela também 'database' => database_path(ROOT2."Storage".DS."Database".DS.$conf['sqlite']['database'].'db'), 'prefix' => '' ],'default'); } $capsule->bootEloquent(); } /*start routes*/ $routes = require_once ROOT2."App".DS."routes.php"; $route = new Core\Route($routes); // $route->getUrl(); ?>
  11. subplo

    Laravel - Gerar PDF de um Blade

    Bom dia, pessoal, Tenho um projeto em Laravel 5.x e queria gerar PDF de um Blade já customizado em CSS. Tentei fazer com o DomPDF, porém ele não interpreta o CSS da mesma forma que aparece na página do sistema, parece que ainda não há suporte para tal. Alguma sugestão? Agradeço desde já a colaboração de todos, fico no aguardo.
  12. mplc

    Relacionamento de tabelas (API Laravel)

    Estou criando uma API em PHP utilizando Laravel, porém não consegui fazer o relacionamento entre duas tabelas. Tabela Usuário(LoginUsers)>Comportamento de Usuário(Behaviors). Já criei o GET do LoginUser e do Behavior de forma separada, porém gostaria de que quando eu fizesse uma requisição do usuário (LoginUser) trazer os comportamentos dele(Behavior), e não só do usuário como está sendo feito hoje. A tabela Behaviors, possui a fk login_user_id. Alguém consegue me ajudar? Imagino que seja no Controller, mas não to sabendo fazer. Model: LoginUser <?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class LoginUser extends Model { protected $fillable = ["status_id","access_group_id","first_name","last_name","email","password","agreement","ip_user","timezone"]; public function getResults($login_user_id) { return $this->select( 'status_id', 'access_group_id', 'login_user_id', 'first_name', 'last_name' ) ->where('login_user_id','=',"{$login_user_id}") ->get(); } public function Behaviors(){ return $this->belongsTo('App\Models\Behavior','login_user_id'); } Controller: LoginUserController <?php namespace App\Http\Controllers\Api; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\Models\LoginUser; class LoginUserController extends Controller { private $loginuser; public function __construct(LoginUser $loginuser) { $this->loginuser = $loginuser; } public function show(LoginUser $loginuser, Request $request) { $loginusers = $this->loginuser->getResults($request->login_user_id); return response()->json($loginusers); } } } Model: Behavior <?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class Behavior extends Model { //protected $fillable = []; public function getResults($login_user_id) { if(!$login_user_id) return $this->get(); return $this->select( 'behavior_id', 'behaviors.key_behavior_id', 'lkp_key_behaviors.key_behavior', 'login_user_id' ) ->join('lkp_key_behaviors','behaviors.key_behavior_id','=','lkp_key_behaviors.key_behavior_id') ->where('login_user_id','=',"{$login_user_id}") ->get(); } public function LkpKeyBehaviors(){ return $this->hasMany('App\Models\LkpKeyBehavior','key_behavior_id'); } public function LoginUsers(){ return $this->hasMany('App\Models\LoginUser','login_user_id'); } } Controller: behaviorController <?php namespace App\Http\Controllers\Api; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\Models\Behavior; class BehaviorController extends Controller { private $behavior; public function __construct(Behavior $behavior) { $this->behavior = $behavior; } public function index(Behavior $behavior, Request $request) { $behaviors = $this->behavior->getResults($request->login_user_id); return response()->json($behaviors); } }
  13. Lucilius

    Loop infinito no Ajax

    Prezados, Do nada, meu ajax parou de funcionar,entrando em loop infinito em na linha destacada: $(document).on('click','#nfe_btn_add', function(){ var $total = document.frmNFE.nfe_I11_vProd.value; var $cprod = document.frmNFE.nfe_id_item.value; var $Token = $('meta[name="csrf-token"]').attr('content'); if ($cprod === ''){ alert('Erro! identifique um produto para registrar na nfe.'); return false; } if ($total === 0){ alert('Erro! Informe quantidade e o preço para o produto.'); return false; } $.ajax({ url :'/nfe-insert-item', method :'POST', data : { cprod : document.frmNFE.nfe_id_item.value, qcom : document.frmNFE.nfe_I10_qCom.value, vuncom : document.frmNFE.nfe_I11_vProd.value, ucom : document.frmNFE.nfe_I09_uCom.value, vProd : document.frmNFE.nfe_I11_vProd, idTMP : document.frmNFE.IDNFETMP.value , xProd : document.frmNFE.nfe_xProd.value, "_token": $Token }, cached : false, success : function(data){ alert('Item incluso'); nfe_fetch_data(); }, error : function( oErro, exception ){ var msgErro = ''; if (oErro.status === 0) { msgErro = 'Erro de rede!'; } else { msgErro = 'Erro interno!\n'+ oErro.responseText; } alert( msgErro); return false; } }); }); No destaque em negrito, o Ajax entra em loop e apresenta mensagem: Uncaught RangeError: Maximum call stack size exceeded at HTMLInputElement.toString (<anonymous>) at Function.type (VM590 jquery.min.js:2) Estava funcionando antes.!!!
  14. clickanapolis

    upload laravel

    Pessoal estou iniciando com o laravel e não estou conseguindo fazer o upload funcionar. fiz assim: $file = $request->file('foto')->move('/home/meusite/public_html/img/noticias/'); só que esta gravando no banco assim: /tmp/php4nGktU e na pasta dos arquivos assim: php4nGktU o que devo fazer para funcionar?
  15. Paulo Henrique Anisio

    Laravel erro "This action is unauthorized."

    Boa noite! Estou tendo um problema no Laravel que está me incomodando. Quando eu tento deletar ou editar meu formulario ele dá essa mensagem "This action is unauthorized." eu entendo que eu coloquei uma autorização no AuthServiceProvider na função anonima: Gate::define('update-categoria', function ($user, $categoria) { return $user->id == $categoria->user_id; }); Já fiz de tudo criei a migration categoria com o campo user_id, criei o controller com o as autorizacôes nos methodos que eu vejo que engraçado que eu criei um Gate: Gate::define('update-client', function ($user, $client) { return $user->id == $client->user_id; }); e ele me dá autorização de deletar e editar no formulário. Já li a documentação do laravel e não entendi nada. Vocês poderiam dar uma ajuda? Desde já grato!
  16. Tiago André

    Laravel queue duplicando envio

    Tenho um sistema que envia mensagens para os usuarios cadastrados.Quando envio a mensagem para os usuarios ocorre normal, mas o problema acontece quando eu tento enviar outra mensagem sem a primeira ter finalizado o envio. Alguns usuarios acabam recebendo duas vezes a mesma mensagem. Hoje a estrutura é a seguinte: Escrevo a mensagem e clico em enviar. Essa mensagem vai para uma tabela com status "em fila", após todas as mensagem serem adicionadas nessa tabela tem um novo job que atualizada o status para "processando", após todas serem atualizadas eu realizado o envio atualizando o status para "enviado". Mas conforme falei anteriormente, se eu realizar um novo envio enquanto esse está sendo processado ele acaba repetindo o envio.Como posso resolver isso?
  17. diegohamaz1

    Laravel + Passport = retorna sempre não autenticado

    Pessoal , Estou com um problema aqui com uma migração do pacote depreciado lucadegasperi/oauth2-server-laravel para o Passport do laravel 5.6 , tenho as seguintes configurações : routes/web.php Route::group(['middleware' => 'OAuth2'], function () { Route::group(['middleware' => 'Services'], function () { Route::get('cep/{cep}', ['uses' => 'SoaWeb\CepController@get']); Route::get('serasa/{cpf}', 'SoaWeb\SerasaController@get'); Route::get('cpf/{cpf}/{data}', 'SoaWeb\CpfController@get'); Route::get('cnpj/{cnpj}', 'SoaWeb\CnpjController@get'); }); }); Kernel.php protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, // \Illuminate\Session\Middleware\AuthenticateSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \App\Http\Middleware\VerifyCsrfToken::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, ], 'api' => [ 'throttle:60,1', 'bindings', ], ]; /** * The application's route middleware. * * @var array */ protected $routeMiddleware = [ 'auth' => \App\Http\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'can' => \Illuminate\Foundation\Http\Middleware\Authorize::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 'auth.basic.once' => \App\Http\Middleware\AuthenticateOnceWithBasicAuth::class, 'Services' => 'App\Http\Middleware\ServicesMiddleware', 'WebService' => 'App\Http\Middleware\WebServiceMiddleware', 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, 'client' => CheckClientCredentials::class, 'cors' => \Barryvdh\Cors\HandleCors::class, 'OAuth2' => 'App\Http\Middleware\OAuth2Middleware', ]; Quando o usuário loga , já está sendo tudo salvo nas tabelas do passport e gerado o acccess_token tão como o Bearer , meu problema é na middleware OAuth2Middleware que só me retorna not authorized OAuth2Middleware.php <?php namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; use Response; use Input; use Hash; use App\Usuarios; use Lang; use Auth; use Laravel\Passport\TokenRepository; use League\OAuth2\Server\ResourceServer; use League\OAuth2\Server\Exception\OAuthServerException; use Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory; class OAuth2Middleware { protected $server; protected $tokens; public function __construct(ResourceServer $server, TokenRepository $tokens) { $this->server = $server; $this->tokens = $tokens; } /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { try { if( $this->validateToken($request) === null ){ return $next($request); } } catch (Exception\InvalidRequestException $e) { } catch (Exception\AccessDeniedException $e) { } $http_codigo = 499; $retorno['tipo'] = 'erro'; $retorno['mensagem'] = Lang::get('webservice.acesso_negado'); return response( json_encode( $retorno ) , $http_codigo); } public function validateToken(Request $request, $localCall = false) { try { $psr = (new DiactorosFactory)->createRequest($request); $psr = $this->server->validateAuthenticatedRequest($psr); $token = $this->tokens->find( $psr->getAttribute('oauth_access_token_id') ); $currentDate = new DateTime(); $tokenExpireDate = new DateTime($token->expires_at); $isAuthenticated = $tokenExpireDate > $currentDate ? true : false; if($localCall) { return $isAuthenticated; } else { return json_encode(array('authenticated' => $isAuthenticated)); } } catch (OAuthServerException $e) { if($localCall) { return false; } else { return json_encode(array('error' => 'Algo ocorreu de errado com a autenticação')); } } } } Quando é executado a função validateAuthenticatedRequest ele não valida corretamente , e me resulta somento no exception não autorizado, o token bearer vem no request e outras informações também , só tenho 4 rotas dentro dessa middleware e não consigo validar a autenticação de jeito nenhum depois da mudança do oauth pro passport , alguem pode me auxiliar aonde estou errando , estou meio perdido , não tenho muita experiência no laravel 5 + tambem , qualquer ajuda é bem vinda .
  18. Marcosvn

    Curso laravel Notifications

    Galera estou passando aqui porque acabo de receber um e-mail da especializati sobre o inicio de um curso gratuito e muito bom de laravel notification, no qual ele vai abordar sistema de comentarios, likes, notificações, etc. O curso é muito bom para todos nós da comunidade laravel e eu estou aqui pra divulgar este ótimo trabalho que o maninho la ta fazendo. Além disso de sugestões sobre outros recursos iomportantes. Eu pedi que ele incluisse sistema de seguidores, like e dislike e timeline. Mas conforme o video de introdução q ele realizou ele vai criar as aulas conforme o interesse da turma. por isso eu peço que quem tiver interesse acessar o site dele ou o canal do youtube e pedir mais sugestões. Quem ja viu os videos dele no youtube sabe q o mlk ensina legal e esse novo curso é muito top pra nós. Curso: https://academy.especializati.com.br/curso/laravel-notifications-gratuito Canal youtube: https://www.youtube.com/channel/UC0Da9RonsYYqh2WK_m61t2g Marcos
  19. Diego Gonçalves Teixeira

    Procuro Recomendação para fazer uma ferramenta

    [RECOMENDAÇÕES][Javascript] Fala pessoal tudo bem? vou implantar um modulo em meu sistema que precisa permitir que o usuário faça marcações em imagens ou textos e fazer comentários relacionados a essas marcações. Alguém tem uma recomendação de algum plugin ou algo do tipo que meio que já faça isso para eu poder adaptar? PS: meu sistema atual trabalha com PHP (utilizando Laravel) e Javascript
  20. Estou com dificuldades em entender quando um determinado trecho de código deve ser repetido em mais de uma classe afim de manter a independência da mesma, pois segundo artigos que leio sobre orientação a objetos - Um Objeto (classe) deve ser independente o suficiente para ser utilizada sem dependências. - Ter apenas uma funcionalidade, desempenhando apenas o seu papel (coesão). Meu sistema é foi criado para vendas de comerciais, onde cada bloco/horário tem um preço diferente, calculado com base no preço médio + acréscimos - descontos. O objetivo (funcionalidade ou papel) da classe VendasController é retornar para View Orcamentos, informações sobre produtos e valores para realização de um orçamento e posteriormente um contrato. Para retornar essas informações eu obtenho o preço médio de cada bloco e adiciono os acréscimos em alguns métodos dentro desta classe, ela tem o funcionamento independente. Agora estou desenvolvendo outra classe que se chama DistribuicoesController, onde a sua funcionalidade é distribuir uma quantidade X de comerciais no blocos/horários disponiveis, e uma de suas opções seriam distribuir no blocos com menor custo médio. Portanto a questão aqui é: Tanto na Classe VendasController como na classe DistribuicoesController eu faço uso de preço médio dos blocos. Qual seria o mais correto: eu repetir o código nas duas classes, fazer tudo dentro de uma unica classe, criar uma "super classe" e usa-la estendida dentro das classes VendasController e DistribuicoesController.
  21. diegohamaz1

    Erro com Oauth passport

    Galera me ajude nessa aqui, Eu tinha o Oauth server aqui no sistema e o mesmo foi depreciado , que seria o pacote LucaDegasperi\OAuth2Server e na documentação diz para usar o laravel/passport, porém eu já tenho uma série de auth na minha base , eu consigo usar com a database antiga? Porque quando rodo php artisan passport:install a aplicação exige alguns campos que na base antiga nao tinha . Alguem já fez essa troca e poderia me tirar essa dúvida? Obrigado de qualquer forma
  22. diegohamaz1

    Laravel 5.6 salvar Logger no mongo

    Pessoal , Como posso fazer no laravel 5.6 , um canal especifico para salvar os logs no mongodb ? Nao estou conseguindo meu configo/logging.php <?php use Monolog\Handler\StreamHandler; return [ 'default' => env('LOG_CHANNEL', 'stack'), 'channels' => [ 'stack' => [ 'driver' => 'stack', 'channels' => ['custom' , 'slack'], ], 'insightops' => [ 'driver' => 'monolog', 'handler' => Monolog\Handler\SyslogUdpHandler::class, 'handler_with' => [ 'token' => env('LOGENTRIES_TOKEN'), 'host' => 'us.data.logs.insight.rapid7.com', 'port' => '10000', ], ], 'slack' => [ 'driver' => 'slack', 'url' => env('LOG_SLACK_WEBHOOK_URL'), 'username' => 'Laravel Log', 'emoji' => ':boom:', 'level' => 'critical', ], 'daily' => [ 'driver' => 'daily', 'path' => storage_path('logs/laravel.log'), 'level' => 'debug', 'days' => 7, ], 'custom' => [ 'driver' => 'custom', 'via' => App\Logging\LogentriesLogger::class, 'level' => 'debug', ], 'stderr' => [ 'driver' => 'monolog', 'handler' => StreamHandler::class, 'with' => [ 'stream' => 'php://stderr', ], ], 'syslog' => [ 'driver' => 'syslog', 'level' => 'debug', ], 'errorlog' => [ 'driver' => 'errorlog', 'level' => 'debug', ], ], ]; E meu log customizado <?php namespace App\Logging; use Monolog\Handler\MongoDBHandler; use Monolog\Logger; use MongoDB\Client; use App\Adapters\LoggerAdapter; class LogentriesLogger { /** * Create a custom Monolog instance. * * @param array $config * @return \Monolog\Logger */ public function __invoke(array $config) { $log = new Logger('application'); $mongodb = new MongoDBHandler(new Client('mongodb://' . config('database.connections.mongodb.host') . ':' . config('database.connections.mongodb.port')), config('database.connections.mongodb.database'), 'logs', LoggerAdapter::INFO); var_dump($log); die; //$log->pushHandler('teste',$mongodb); } } Nao sei como pegar a mensagem de log para inserir no mongo , me ajudem please.
  23. diegohamaz1

    Socket + Laravel + Docker

    Pessoal, Estou tentando salvar logs no www.logentries.com usando laravel 5.6 porem quando tento mandar me da o seguinte erro [2018-06-14 16:35:01] laravel.EMERGENCY: Unable to create configured logger. Using emergency logger. {"exception":"[object] (Error(code: 0): Call to undefined function Monolog\\Handler\\SyslogUdp\\socket_create() at /data/www/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php:26) [stacktrace] #0 /data/www/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php(41): Monolog\\Handler\\SyslogUdp\\UdpSocket->__construct('my.logentries.i...', '10000') #1 [internal function]: Monolog\\Handler\\SyslogUdpHandler->__construct('my.logentries.i...', '10000', 8, 100, true, 'php') #2 /data/www/vendor/laravel/framework/src/Illuminate/Container/Container.php(800): ReflectionClass->newInstanceArgs(Array) #3 /data/www/vendor/laravel/framework/src/Illuminate/Container/Container.php(646): Illuminate\\Container\\Container->build('Monolog\\\\Handler...') #4 /data/www/vendor/laravel/framework/src/Illuminate/Container/Container.php(601): Illuminate\\Container\\Container->resolve('Monolog\\\\Handler...', Array) #5 /data/www/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(734): Illuminate\\Container\\Container->make('Monolog\\\\Handler...', Array) #6 /data/www/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(342): Illuminate\\Foundation\\Application->make('Monolog\\\\Handler...', Array) #7 /data/www/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(191): Illuminate\\Log\\LogManager->createMonologDriver(Array) #8 /data/www/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(115): Illuminate\\Log\\LogManager->resolve('logentries') #9 /data/www/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(103): Illuminate\\Log\\LogManager->get('logentries') #10 /data/www/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(92): Illuminate\\Log\\LogManager->driver('logentries') #11 /data/www/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(230): Illuminate\\Log\\LogManager->channel('logentries') #12 [internal function]: Illuminate\\Log\\LogManager->Illuminate\\Log\\{closure}('logentries', 0) #13 /data/www/vendor/laravel/framework/src/Illuminate/Support/Collection.php(932): array_map(Object(Closure), Array, Array) #14 /data/www/vendor/laravel/framework/src/Illuminate/Support/Collection.php(1027): Illuminate\\Support\\Collection->map(Object(Closure)) #15 /data/www/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(231): Illuminate\\Support\\Collection->flatMap(Object(Closure)) #16 /data/www/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(191): Illuminate\\Log\\LogManager->createStackDriver(Array) #17 /data/www/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(115): Illuminate\\Log\\LogManager->resolve('stack') #18 /data/www/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(103): Illuminate\\Log\\LogManager->get('stack') #19 /data/www/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(583): Illuminate\\Log\\LogManager->driver() #20 /data/www/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(221): Illuminate\\Log\\LogManager->debug('Novo alerta !!!...') #21 /data/www/app/Http/Middleware/AfterMiddleware.php(51): Illuminate\\Support\\Facades\\Facade::__callStatic('debug', Array) #22 /data/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): App\\Http\\Middleware\\AfterMiddleware->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #23 /data/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #24 /data/www/app/Http/Middleware/AppMiddleware.php(70): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #25 /data/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): App\\Http\\Middleware\\AppMiddleware->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #26 /data/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #27 /data/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(67): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #28 /data/www/app/Http/Middleware/VerifyCsrfToken.php(56): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #29 /data/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): App\\Http\\Middleware\\VerifyCsrfToken->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #30 /data/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #31 /data/www/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #32 /data/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #33 /data/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #34 /data/www/app/Http/Middleware/BeforeMiddleware.php(50): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #35 /data/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): App\\Http\\Middleware\\BeforeMiddleware->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #36 /data/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #37 /data/www/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(63): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #38 /data/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Session\\Middleware\\StartSession->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #39 /data/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #40 /data/www/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #41 /data/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #42 /data/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #43 /data/www/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(59): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #44 /data/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #45 /data/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #46 /data/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(51): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #47 /data/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #48 /data/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #49 /data/www/vendor/barryvdh/laravel-cors/src/HandlePreflight.php(35): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #50 /data/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Barryvdh\\Cors\\HandlePreflight->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #51 /data/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #52 /data/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(104): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #53 /data/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(151): Illuminate\\Pipeline\\Pipeline->then(Object(Closure)) #54 /data/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(116): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request)) #55 /data/www/public/index.php(52): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request)) #56 {main} "} Meu arquivo de log esta assim <?php use Monolog\Handler\StreamHandler; return [ 'default' => env('LOG_CHANNEL', 'stack'), 'channels' => [ 'stack' => [ 'driver' => 'stack', 'channels' => ['logentries' , 'slack'], ], 'logentries' => [ 'driver' => 'monolog', 'handler' => Monolog\Handler\SyslogUdpHandler::class, 'handler_with' => [ 'token' => env('LOGENTRIES_TOKEN'), 'port' => '10000', 'host' => 'my.logentries.internal.datahubhost.company.com', 'useSSL ' => 'true', ], ], 'slack' => [ 'driver' => 'slack', 'url' => env('LOG_SLACK_WEBHOOK_URL'), 'username' => 'Laravel Log', 'emoji' => ':boom:', 'level' => 'critical', ], 'daily' => [ 'driver' => 'daily', 'path' => storage_path('logs/laravel.log'), 'level' => 'debug', 'days' => 7, ], 'custom' => [ 'driver' => 'custom', 'via' => App\Logging\LogentriesLogger::class, 'level' => 'debug', ], 'stderr' => [ 'driver' => 'monolog', 'handler' => StreamHandler::class, 'with' => [ 'stream' => 'php://stderr', ], ], 'syslog' => [ 'driver' => 'syslog', 'level' => 'debug', ], 'errorlog' => [ 'driver' => 'errorlog', 'level' => 'debug', ], ], ]; As extensoes de socket estao ativadas dentro e fora do docker , alguem me ajuda please? nao sei mais o que fazer.
  24. Pitag346

    Implementando aplicação Laravel Open Source

    Olá, como vão vcs? Bom estou editando um sistema open source chamado attendize (https://www.attendize.com/), fiz varias implementações, traduções e entre outras coisas... trabalhei muito nesse código e estou quase no fim... onde estou com um problema, quero implementar um gateway de pagamento via pagseguro... mas o detalhe é, não estou entendendo o código, alguém poderia me ajudar ? caso quiserem baixar o sistema completo que como citei é open source, só entrar no site... mas o código que não estou entendendo vou deixa-lo abaixo... app/Http/Controllers/EventCheckoutController.php <?php namespace App\Http\Controllers; use App\Events\OrderCompletedEvent; use App\Models\Affiliate; use App\Models\Attendee; use App\Models\Event; use App\Models\EventStats; use App\Models\Order; use App\Models\OrderItem; use App\Models\QuestionAnswer; use App\Models\ReservedTickets; use App\Models\Ticket; use Carbon\Carbon; use Cookie; use DB; use Illuminate\Http\Request; use Log; use Omnipay; use PDF; use PhpSpec\Exception\Exception; use Validator; class EventCheckoutController extends Controller { /** * Is the checkout in an embedded Iframe? * * @var bool */ protected $is_embedded; /** * EventCheckoutController constructor. * @param Request $request */ public function __construct(Request $request) { /* * See if the checkout is being called from an embedded iframe. */ $this->is_embedded = $request->get('is_embedded') == '1'; } /** * Validate a ticket request. If successful reserve the tickets and redirect to checkout * * @param Request $request * @param $event_id * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse */ public function postValidateTickets(Request $request, $event_id) { /* * Order expires after X min */ $order_expires_time = Carbon::now()->addMinutes(config('attendize.checkout_timeout_after')); $event = Event::findOrFail($event_id); if (!$request->has('tickets')) { return response()->json([ 'status' => 'error', 'message' => 'No tickets selected', ]); } $ticket_ids = $request->get('tickets'); /* * Remove any tickets the user has reserved */ ReservedTickets::where('session_id', '=', session()->getId())->delete(); /* * Go though the selected tickets and check if they're available * , tot up the price and reserve them to prevent over selling. */ $validation_rules = []; $validation_messages = []; $tickets = []; $order_total = 0; $total_ticket_quantity = 0; $booking_fee = 0; $organiser_booking_fee = 0; $quantity_available_validation_rules = []; foreach ($ticket_ids as $ticket_id) { $current_ticket_quantity = (int)$request->get('ticket_' . $ticket_id); if ($current_ticket_quantity < 1) { continue; } $total_ticket_quantity = $total_ticket_quantity + $current_ticket_quantity; $ticket = Ticket::find($ticket_id); $ticket_quantity_remaining = $ticket->quantity_remaining; $max_per_person = min($ticket_quantity_remaining, $ticket->max_per_person); $quantity_available_validation_rules['ticket_' . $ticket_id] = [ 'numeric', 'min:' . $ticket->min_per_person, 'max:' . $max_per_person ]; $quantity_available_validation_messages = [ 'ticket_' . $ticket_id . '.max' => 'The maximum number of tickets you can register is ' . $ticket_quantity_remaining, 'ticket_' . $ticket_id . '.min' => 'You must select at least ' . $ticket->min_per_person . ' tickets.', ]; $validator = Validator::make(['ticket_' . $ticket_id => (int)$request->get('ticket_' . $ticket_id)], $quantity_available_validation_rules, $quantity_available_validation_messages); if ($validator->fails()) { return response()->json([ 'status' => 'error', 'messages' => $validator->messages()->toArray(), ]); } $order_total = $order_total + ($current_ticket_quantity * $ticket->price); $booking_fee = $booking_fee + ($current_ticket_quantity * $ticket->booking_fee); $organiser_booking_fee = $organiser_booking_fee + ($current_ticket_quantity * $ticket->organiser_booking_fee); $tickets[] = [ 'ticket' => $ticket, 'qty' => $current_ticket_quantity, 'price' => ($current_ticket_quantity * $ticket->price), 'booking_fee' => ($current_ticket_quantity * $ticket->booking_fee), 'organiser_booking_fee' => ($current_ticket_quantity * $ticket->organiser_booking_fee), 'full_price' => $ticket->price + $ticket->total_booking_fee, ]; /* * Reserve the tickets for X amount of minutes */ $reservedTickets = new ReservedTickets(); $reservedTickets->ticket_id = $ticket_id; $reservedTickets->event_id = $event_id; $reservedTickets->quantity_reserved = $current_ticket_quantity; $reservedTickets->expires = $order_expires_time; $reservedTickets->session_id = session()->getId(); $reservedTickets->save(); for ($i = 0; $i < $current_ticket_quantity; $i++) { /* * Create our validation rules here */ $validation_rules['ticket_holder_first_name.' . $i . '.' . $ticket_id] = ['required']; $validation_rules['ticket_holder_last_name.' . $i . '.' . $ticket_id] = ['required']; $validation_rules['ticket_holder_email.' . $i . '.' . $ticket_id] = ['required', 'email']; $validation_messages['ticket_holder_first_name.' . $i . '.' . $ticket_id . '.required'] = 'Ticket holder ' . ($i + 1) . '\'s first name is required'; $validation_messages['ticket_holder_last_name.' . $i . '.' . $ticket_id . '.required'] = 'Ticket holder ' . ($i + 1) . '\'s last name is required'; $validation_messages['ticket_holder_email.' . $i . '.' . $ticket_id . '.required'] = 'Ticket holder ' . ($i + 1) . '\'s email is required'; $validation_messages['ticket_holder_email.' . $i . '.' . $ticket_id . '.email'] = 'Ticket holder ' . ($i + 1) . '\'s email appears to be invalid'; /* * Validation rules for custom questions */ foreach ($ticket->questions as $question) { if ($question->is_required && $question->is_enabled) { $validation_rules['ticket_holder_questions.' . $ticket_id . '.' . $i . '.' . $question->id] = ['required']; $validation_messages['ticket_holder_questions.' . $ticket_id . '.' . $i . '.' . $question->id . '.required'] = "This question is required"; } } } } if (empty($tickets)) { return response()->json([ 'status' => 'error', 'message' => 'No tickets selected.', ]); } /* * The 'ticket_order_{event_id}' session stores everything we need to complete the transaction. */ session()->set('ticket_order_' . $event->id, [ 'validation_rules' => $validation_rules, 'validation_messages' => $validation_messages, 'event_id' => $event->id, 'tickets' => $tickets, 'total_ticket_quantity' => $total_ticket_quantity, 'order_started' => time(), 'expires' => $order_expires_time, 'reserved_tickets_id' => $reservedTickets->id, 'order_total' => $order_total, 'booking_fee' => $booking_fee, 'organiser_booking_fee' => $organiser_booking_fee, 'total_booking_fee' => $booking_fee + $organiser_booking_fee, 'order_requires_payment' => (ceil($order_total) == 0) ? false : true, 'account_id' => $event->account->id, 'affiliate_referral' => Cookie::get('affiliate_' . $event_id), 'account_payment_gateway' => count($event->account->active_payment_gateway) ? $event->account->active_payment_gateway : false, 'payment_gateway' => count($event->account->active_payment_gateway) ? $event->account->active_payment_gateway->payment_gateway : false, ]); /* * If we're this far assume everything is OK and redirect them * to the the checkout page. */ if ($request->ajax()) { return response()->json([ 'status' => 'success', 'redirectUrl' => route('showEventCheckout', [ 'event_id' => $event_id, 'is_embedded' => $this->is_embedded, ]) . '#order_form', ]); } /* * Maybe display something prettier than this? */ exit('Please enable Javascript in your browser.'); } /** * Show the checkout page * * @param Request $request * @param $event_id * @return \Illuminate\Http\RedirectResponse|\Illuminate\View\View */ public function showEventCheckout(Request $request, $event_id) { $order_session = session()->get('ticket_order_' . $event_id); if (!$order_session || $order_session['expires'] < Carbon::now()) { $route_name = $this->is_embedded ? 'showEmbeddedEventPage' : 'showEventPage'; return redirect()->route($route_name, ['event_id' => $event_id]); } $secondsToExpire = Carbon::now()->diffInSeconds($order_session['expires']); $data = $order_session + [ 'event' => Event::findorFail($order_session['event_id']), 'secondsToExpire' => $secondsToExpire, 'is_embedded' => $this->is_embedded, ]; if ($this->is_embedded) { return view('Public.ViewEvent.Embedded.EventPageCheckout', $data); } return view('Public.ViewEvent.EventPageCheckout', $data); } /** * Create the order, handle payment, update stats, fire off email jobs then redirect user * * @param Request $request * @param $event_id * @return \Illuminate\Http\JsonResponse */ public function postCreateOrder(Request $request, $event_id) { /* * If there's no session kill the request and redirect back to the event homepage. */ if (!session()->get('ticket_order_' . $event_id)) { return response()->json([ 'status' => 'error', 'message' => 'Your session has expired.', 'redirectUrl' => route('showEventPage', [ 'event_id' => $event_id, ]) ]); } $event = Event::findOrFail($event_id); $order = new Order; $ticket_order = session()->get('ticket_order_' . $event_id); $validation_rules = $ticket_order['validation_rules']; $validation_messages = $ticket_order['validation_messages']; $order->rules = $order->rules + $validation_rules; $order->messages = $order->messages + $validation_messages; if (!$order->validate($request->all())) { return response()->json([ 'status' => 'error', 'messages' => $order->errors(), ]); } /* * Add the request data to a session in case payment is required off-site */ session()->push('ticket_order_' . $event_id . '.request_data', $request->except(['card-number', 'card-cvc'])); /* * Begin payment attempt before creating the attendees etc. * */ if ($ticket_order['order_requires_payment']) { /* * Check if the user has chosen to pay offline * and if they are allowed */ if ($request->get('pay_offline') && $event->enable_offline_payments) { return $this->completeOrder($event_id); } try { $gateway = Omnipay::create($ticket_order['payment_gateway']->name); $gateway->initialize($ticket_order['account_payment_gateway']->config + [ 'testMode' => config('attendize.enable_test_payments'), ]); $transaction_data = [ 'amount' => ($ticket_order['order_total'] + $ticket_order['organiser_booking_fee']), 'currency' => $event->currency->code, 'description' => 'Order for customer: ' . $request->get('order_email'), ]; switch ($ticket_order['payment_gateway']->id) { case config('attendize.payment_gateway_paypal'): case config('attendize.payment_gateway_coinbase'): $transaction_data += [ 'cancelUrl' => route('showEventCheckoutPaymentReturn', [ 'event_id' => $event_id, 'is_payment_cancelled' => 1 ]), 'returnUrl' => route('showEventCheckoutPaymentReturn', [ 'event_id' => $event_id, 'is_payment_successful' => 1 ]), 'brandName' => isset($ticket_order['account_payment_gateway']->config['brandingName']) ? $ticket_order['account_payment_gateway']->config['brandingName'] : $event->organiser->name ]; break; case config('attendize.payment_gateway_stripe'): $token = $request->get('stripeToken'); $transaction_data += [ 'token' => $token, ]; break; case config('attendize.payment_gateway_migs'): $transaction_data += [ 'transactionId' => $event_id . date('YmdHis'), // TODO: Where to generate transaction id? 'returnUrl' => route('showEventCheckoutPaymentReturn', [ 'event_id' => $event_id, 'is_payment_successful' => 1 ]), ]; // Order description in MIGS is only 34 characters long; so we need a short description $transaction_data['description'] = "Ticket sales " . $transaction_data['transactionId']; break; default: Log::error('No payment gateway configured.'); return repsonse()->json([ 'status' => 'error', 'message' => 'No payment gateway configured.' ]); break; } $transaction = $gateway->purchase($transaction_data); $response = $transaction->send(); if ($response->isSuccessful()) { session()->push('ticket_order_' . $event_id . '.transaction_id', $response->getTransactionReference()); return $this->completeOrder($event_id); } elseif ($response->isRedirect()) { /* * As we're going off-site for payment we need to store some data in a session so it's available * when we return */ session()->push('ticket_order_' . $event_id . '.transaction_data', $transaction_data); Log::info("Redirect url: " . $response->getRedirectUrl()); $return = [ 'status' => 'success', 'redirectUrl' => $response->getRedirectUrl(), 'message' => 'Redirecting to ' . $ticket_order['payment_gateway']->provider_name ]; // GET method requests should not have redirectData on the JSON return string if($response->getRedirectMethod() == 'POST') { $return['redirectData'] = $response->getRedirectData(); } return response()->json($return); } else { // display error to customer return response()->json([ 'status' => 'error', 'message' => $response->getMessage(), ]); } } catch (\Exeption $e) { Log::error($e); $error = 'Sorry, there was an error processing your payment. Please try again.'; } if ($error) { return response()->json([ 'status' => 'error', 'message' => $error, ]); } } /* * No payment required so go ahead and complete the order */ return $this->completeOrder($event_id); } /** * Attempt to complete a user's payment when they return from * an off-site gateway * * @param Request $request * @param $event_id * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse */ public function showEventCheckoutPaymentReturn(Request $request, $event_id) { if ($request->get('is_payment_cancelled') == '1') { session()->flash('message', 'You cancelled your payment. You may try again.'); return response()->redirectToRoute('showEventCheckout', [ 'event_id' => $event_id, 'is_payment_cancelled' => 1, ]); } $ticket_order = session()->get('ticket_order_' . $event_id); $gateway = Omnipay::create($ticket_order['payment_gateway']->name); $gateway->initialize($ticket_order['account_payment_gateway']->config + [ 'testMode' => config('attendize.enable_test_payments'), ]); $transaction = $gateway->completePurchase($ticket_order['transaction_data'][0]); $response = $transaction->send(); if ($response->isSuccessful()) { session()->push('ticket_order_' . $event_id . '.transaction_id', $response->getTransactionReference()); return $this->completeOrder($event_id, false); } else { session()->flash('message', $response->getMessage()); return response()->redirectToRoute('showEventCheckout', [ 'event_id' => $event_id, 'is_payment_failed' => 1, ]); } } /** * Complete an order * * @param $event_id * @param bool|true $return_json * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse */ public function completeOrder($event_id, $return_json = true) { DB::beginTransaction(); try { $order = new Order(); $ticket_order = session()->get('ticket_order_' . $event_id); $request_data = $ticket_order['request_data'][0]; $event = Event::findOrFail($ticket_order['event_id']); $attendee_increment = 1; $ticket_questions = isset($request_data['ticket_holder_questions']) ? $request_data['ticket_holder_questions'] : []; /* * Create the order */ if (isset($ticket_order['transaction_id'])) { $order->transaction_id = $ticket_order['transaction_id'][0]; } if ($ticket_order['order_requires_payment'] && !isset($request_data['pay_offline'])) { $order->payment_gateway_id = $ticket_order['payment_gateway']->id; } $order->first_name = $request_data['order_first_name']; $order->last_name = $request_data['order_last_name']; $order->email = $request_data['order_email']; $order->order_status_id = isset($request_data['pay_offline']) ? config('attendize.order_awaiting_payment') : config('attendize.order_complete'); $order->amount = $ticket_order['order_total']; $order->booking_fee = $ticket_order['booking_fee']; $order->organiser_booking_fee = $ticket_order['organiser_booking_fee']; $order->discount = 0.00; $order->account_id = $event->account->id; $order->event_id = $ticket_order['event_id']; $order->is_payment_received = isset($request_data['pay_offline']) ? 0 : 1; $order->save(); /* * Update the event sales volume */ $event->increment('sales_volume', $order->amount); $event->increment('organiser_fees_volume', $order->organiser_booking_fee); /* * Update affiliates stats stats */ if ($ticket_order['affiliate_referral']) { $affiliate = Affiliate::where('name', '=', $ticket_order['affiliate_referral']) ->where('event_id', '=', $event_id)->first(); $affiliate->increment('sales_volume', $order->amount + $order->organiser_booking_fee); $affiliate->increment('tickets_sold', $ticket_order['total_ticket_quantity']); } /* * Update the event stats */ $event_stats = EventStats::firstOrNew([ 'event_id' => $event_id, 'date' => DB::raw('CURRENT_DATE'), ]); $event_stats->increment('tickets_sold', $ticket_order['total_ticket_quantity']); if ($ticket_order['order_requires_payment']) { $event_stats->increment('sales_volume', $order->amount); $event_stats->increment('organiser_fees_volume', $order->organiser_booking_fee); } /* * Add the attendees */ foreach ($ticket_order['tickets'] as $attendee_details) { /* * Update ticket's quantity sold */ $ticket = Ticket::findOrFail($attendee_details['ticket']['id']); /* * Update some ticket info */ $ticket->increment('quantity_sold', $attendee_details['qty']); $ticket->increment('sales_volume', ($attendee_details['ticket']['price'] * $attendee_details['qty'])); $ticket->increment('organiser_fees_volume', ($attendee_details['ticket']['organiser_booking_fee'] * $attendee_details['qty'])); /* * Insert order items (for use in generating invoices) */ $orderItem = new OrderItem(); $orderItem->title = $attendee_details['ticket']['title']; $orderItem->quantity = $attendee_details['qty']; $orderItem->order_id = $order->id; $orderItem->unit_price = $attendee_details['ticket']['price']; $orderItem->unit_booking_fee = $attendee_details['ticket']['booking_fee'] + $attendee_details['ticket']['organiser_booking_fee']; $orderItem->save(); /* * Create the attendees */ for ($i = 0; $i < $attendee_details['qty']; $i++) { $attendee = new Attendee(); $attendee->first_name = $request_data["ticket_holder_first_name"][$i][$attendee_details['ticket']['id']]; $attendee->last_name = $request_data["ticket_holder_last_name"][$i][$attendee_details['ticket']['id']]; $attendee->email = $request_data["ticket_holder_email"][$i][$attendee_details['ticket']['id']]; $attendee->event_id = $event_id; $attendee->order_id = $order->id; $attendee->ticket_id = $attendee_details['ticket']['id']; $attendee->account_id = $event->account->id; $attendee->reference_index = $attendee_increment; $attendee->save(); /* * Save the attendee's questions */ foreach ($attendee_details['ticket']->questions as $question) { $ticket_answer = isset($ticket_questions[$attendee_details['ticket']->id][$i][$question->id]) ? $ticket_questions[$attendee_details['ticket']->id][$i][$question->id] : null; if (is_null($ticket_answer)) { continue; } /* * If there are multiple answers to a question then join them with a comma * and treat them as a single answer. */ $ticket_answer = is_array($ticket_answer) ? implode(', ', $ticket_answer) : $ticket_answer; if (!empty($ticket_answer)) { QuestionAnswer::create([ 'answer_text' => $ticket_answer, 'attendee_id' => $attendee->id, 'event_id' => $event->id, 'account_id' => $event->account->id, 'question_id' => $question->id ]); } } /* Keep track of total number of attendees */ $attendee_increment++; } } /* * Kill the session */ session()->forget('ticket_order_' . $event->id); /* * Queue up some tasks - Emails to be sent, PDFs etc. */ Log::info('Firing the event'); event(new OrderCompletedEvent($order)); } catch (Exception $e) { Log::error($e); DB::rollBack(); return response()->json([ 'status' => 'error', 'message' => 'Whoops! There was a problem processing your order. Please try again.' ]); } DB::commit(); if ($return_json) { return response()->json([ 'status' => 'success', 'redirectUrl' => route('showOrderDetails', [ 'is_embedded' => $this->is_embedded, 'order_reference' => $order->order_reference, ]), ]); } return response()->redirectToRoute('showOrderDetails', [ 'is_embedded' => $this->is_embedded, 'order_reference' => $order->order_reference, ]); } /** * Show the order details page * * @param Request $request * @param $order_reference * @return \Illuminate\View\View */ public function showOrderDetails(Request $request, $order_reference) { $order = Order::where('order_reference', '=', $order_reference)->first(); if (!$order) { abort(404); } $data = [ 'order' => $order, 'event' => $order->event, 'tickets' => $order->event->tickets, 'is_embedded' => $this->is_embedded, ]; if ($this->is_embedded) { return view('Public.ViewEvent.Embedded.EventPageViewOrder', $data); } return view('Public.ViewEvent.EventPageViewOrder', $data); } /** * Shows the tickets for an order - either HTML or PDF * * @param Request $request * @param $order_reference * @return \Illuminate\View\View */ public function showOrderTickets(Request $request, $order_reference) { $order = Order::where('order_reference', '=', $order_reference)->first(); if (!$order) { abort(404); } $data = [ 'order' => $order, 'event' => $order->event, 'tickets' => $order->event->tickets, 'attendees' => $order->attendees, 'css' => file_get_contents(public_path('assets/stylesheet/ticket.css')), 'image' => base64_encode(file_get_contents(public_path($order->event->organiser->full_logo_path))), ]; if ($request->get('download') == '1') { return PDF::html('Public.ViewEvent.Partials.PDFTicket', $data, 'Tickets'); } return view('Public.ViewEvent.Partials.PDFTicket', $data); } } nesse arquivo eu tentei edita-lo, mas não obtive exito! /resources/views/ManageAccount/Partials/PaymentGatewayOptions.blade.php <script> $(function() { $('.payment_gateway_options').hide(); $('#gateway_{{$account->payment_gateway_id}}').show(); $('.gateway_selector').on('change', function(e) { $('.payment_gateway_options').hide(); $('#gateway_' + $(this).val()).fadeIn(); }); }); </script> {!! Form::model($account, array('url' => route('postEditAccountPayment'), 'class' => 'ajax ')) !!} <div class="form-group"> {!! Form::label('payment_gateway_id', 'Default Payment Gateway', array('class'=>'control-label ')) !!} {!! Form::select('payment_gateway_id', $payment_gateways, $account->payment_gateway_id, ['class' => 'form-control gateway_selector']) !!} </div> {{--Stripe--}} <section class="payment_gateway_options" id="gateway_{{config('attendize.payment_gateway_stripe')}}"> <h4>Stripe Settings</h4> <div class="row"> <div class="col-md-6"> <div class="form-group"> {!! Form::label('stripe[apiKey]', 'Stripe Secret Key', array('class'=>'control-label ')) !!} {!! Form::text('stripe[apiKey]', $account->getGatewayConfigVal(config('attendize.payment_gateway_stripe'), 'apiKey'),[ 'class'=>'form-control']) !!} </div> </div> <div class="col-md-6"> <div class="form-group"> {!! Form::label('publishableKey', 'Stripe Publishable Key', array('class'=>'control-label ')) !!} {!! Form::text('stripe[publishableKey]', $account->getGatewayConfigVal(config('attendize.payment_gateway_stripe'), 'publishableKey'),[ 'class'=>'form-control']) !!} </div> </div> </div> </section> {{--Paypal--}} <section class="payment_gateway_options" id="gateway_{{config('attendize.payment_gateway_paypal')}}"> <h4>PayPal Settings</h4> <div class="row"> <div class="col-md-6"> <div class="form-group"> {!! Form::label('paypal[username]', 'PayPal Username', array('class'=>'control-label ')) !!} {!! Form::text('paypal[username]', $account->getGatewayConfigVal(config('attendize.payment_gateway_paypal'), 'username'),[ 'class'=>'form-control']) !!} </div> </div> <div class="col-md-6"> <div class="form-group"> {!! Form::label('paypal[password]', 'PayPal Password', ['class'=>'control-label ']) !!} {!! Form::text('paypal[password]', $account->getGatewayConfigVal(config('attendize.payment_gateway_paypal'), 'password'),[ 'class'=>'form-control']) !!} </div> </div> </div> <div class="row"> <div class="col-md-12"> <div class="form-group"> {!! Form::label('paypal[signature]', 'PayPal Signature', array('class'=>'control-label ')) !!} {!! Form::text('paypal[signature]', $account->getGatewayConfigVal(config('attendize.payment_gateway_paypal'), 'signature'),[ 'class'=>'form-control']) !!} </div> </div> </div> <div class="row"> <div class="col-md-12"> <div class="form-group"> {!! Form::label('paypal[brandName]', 'Branding Name', array('class'=>'control-label ')) !!} {!! Form::text('paypal[brandName]', $account->getGatewayConfigVal(config('attendize.payment_gateway_paypal'), 'brandName'),[ 'class'=>'form-control']) !!} <div class="help-block"> This is the name buyers will see when checking out. Leave this blank if you want the event organiser's name to be used. </div> </div> </div> </div> </section> {{--BitPay--}} <section class="payment_gateway_options" id="gateway_{{config('attendize.payment_gateway_bitpay')}}"> <h4>BitPay Settings</h4> <div class="row"> <div class="col-md-12"> <div class="form-group"> {!! Form::label('bitpay[apiKey]', 'BitPay Api Key', array('class'=>'control-label ')) !!} {!! Form::text('bitpay[apiKey]', $account->getGatewayConfigVal(config('attendize.payment_gateway_bitpay'), 'apiKey'),[ 'class'=>'form-control']) !!} </div> </div> </div> </section> {{--Coinbase--}} <section class="payment_gateway_options" id="gateway_{{config('attendize.payment_gateway_coinbase')}}"> <h4>Coinbase Settings</h4> <div class="row"> <div class="col-md-6"> <div class="form-group"> {!! Form::label('coinbase[apiKey]', 'API Key', array('class'=>'control-label ')) !!} {!! Form::text('coinbase[apiKey]', $account->getGatewayConfigVal(config('attendize.payment_gateway_coinbase'), 'apiKey'),[ 'class'=>'form-control']) !!} </div> </div> <div class="col-md-6"> <div class="form-group"> {!! Form::label('coinbase[secret]', 'Secret Code', ['class'=>'control-label ']) !!} {!! Form::text('coinbase[secret]', $account->getGatewayConfigVal(config('attendize.payment_gateway_coinbase'), 'secret'),[ 'class'=>'form-control']) !!} </div> </div> </div> <div class="row"> <div class="col-md-12"> <div class="form-group"> {!! Form::label('coinbase[accountId]', 'Account ID', array('class'=>'control-label ')) !!} {!! Form::text('coinbase[accountId]', $account->getGatewayConfigVal(config('attendize.payment_gateway_coinbase'), 'accountId'),[ 'class'=>'form-control']) !!} </div> </div> </div> {{--Pagseguro--}} <section class="payment_gateway_options" id="gateway_{{config('attendize.payment_gateway_pagseguro')}}"> <h4>Configurações pagseguro</h4> <div class="row"> <div class="col-md-6"> <div class="form-group"> {!! Form::label('pagseguro[appId]', 'APP id', array('class'=>'control-label ')) !!} {!! Form::text('pagseguro[appId]', $account->getGatewayConfigVal(config('attendize.payment_gateway_pagseguro'), 'APP id'),[ 'class'=>'form-control']) !!} </div> </div> <div class="col-md-6"> <div class="form-group"> {!! Form::label('pagseguro[AppKey]', 'AppKey', ['class'=>'control-label ']) !!} {!! Form::text('pagseguro[AppKey]', $account->getGatewayConfigVal(config('attendize.payment_gateway_pagseguro'), 'AppKey'),[ 'class'=>'form-control']) !!} </div> </div> </div> </section> {{--BDO MIGS--}} <section class="payment_gateway_options" id="gateway_{{config('attendize.payment_gateway_migs')}}"> <h4>Mastercard Internet Gateway Service Settings</h4> <div class="row"> <div class="col-md-6"> <div class="form-group"> {!! Form::label('migs[merchantAccessCode]', 'Merchant Access Code', array('class'=>'control-label ')) !!} {!! Form::text('migs[merchantAccessCode]', $account->getGatewayConfigVal(config('attendize.payment_gateway_migs'), 'merchantAccessCode'),[ 'class'=>'form-control']) !!} </div> </div> <div class="col-md-6"> <div class="form-group"> {!! Form::label('migs[merchantId]', 'Merchant ID', ['class'=>'control-label ']) !!} {!! Form::text('migs[merchantId]', $account->getGatewayConfigVal(config('attendize.payment_gateway_migs'), 'merchantId'),[ 'class'=>'form-control']) !!} </div> </div> </div> <div class="row"> <div class="col-md-12"> <div class="form-group"> {!! Form::label('migs[secureHash]', 'Secure Hash Code', array('class'=>'control-label ')) !!} {!! Form::text('migs[secureHash]', $account->getGatewayConfigVal(config('attendize.payment_gateway_migs'), 'secureHash'),[ 'class'=>'form-control']) !!} </div> </div> </div> </section> <div class="row"> <div class="col-md-12"> <div class="panel-footer"> {!! Form::submit('Save Payment Details', ['class' => 'btn btn-success pull-right']) !!} </div> </div> </div> {!! Form::close() !!} estou tentando todos os dias, mas não estou conseguindo... pra terem uma noção estou tentar fazer a implementação do pagseguro desde setembro de 2016... estou recorrendo ao fórum pois não sei mais o que fazer ou á quem recorrer... se for causar muito trabalho a vocês, podem deixar pra lá! att. e Obrigado desde já!
  25. diegohamaz1

    laravel 5.6 + Mongo + Logger

    Pessoal , Perdi hoje o dia todo tentando implementar um esquema de LOG com MongoDb , recentemente atualizei a versão do laravel aqui para a versão 5.6 e toda parte de log que existia na empresa , parou de funcionar , gostaria de saber se alguém tem algum exemplo ou fonte para eu aplicar essa solução , detalhe estou usando docker tambem. Pesquisei muito hoje e não ahei nenhuma fonte com inserção já e conexao do MongoDb com laravel 5.6. Qualquer ajuda é bem vinda , estou bem enrolado com isso .
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.