Jump to content
azeredo

Singla Page Application - Laravel com VueJS - Conflito com rotas

Recommended Posts

Boa noite pessoal, tudo bem?

 

Estou tentando criar uma SPA com Laravel e Vuejs, e um dos pontos que estou tendo dificuldade é com o conflito entre as rotas do laravel com as rotas do vuejs.

 

Ao entrar no site (meusite.com), o sistema redireciona para a view de login, e ao fazer o mesmo o sistema vai para a rota meusite.com/site/login desta forma o usuário está na "home" da aplicação.

 

Esta pagina é composta por um menu lateral esquerdo, e um top menu. No tob menu serão abertas abas conforme o usuario clique nos links do menu lateral. Por default já vem com a aba "Home".

 

Para carregar o conteudo desta aba Home, ao montar o componente vue, eu faço um this.$routes.push('/site/login/home') e isto funciona corretamente.

 

O problema está quando, eu faço um reload nesta página, ou quando tento acessar uma outra aba, por exemplo Sobre. Esta abra sobe está com o route-link para '/site/login/sobre', mas tanto no reload quando tentando acessar esta rota sobre o sistema volta para o endereço '/site/login', perdendo o "nome" do rotemanete e o laravel retorna uma "Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException".

 

No laravel fiz uma alteração no web.php onde:

 

Route::get('/site/login/{name}', function() {
	return redirect('/site/login/');
})->where('name','[A-Za-z]+');


 

Onde pode estar o meu erro?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By terra
      Olá todos,
       
      Não consigo enviar e-mail com repley-to
       
      assim funciona:
       
      assim não funciona:
       
       
       
      Essa é função que envia email:
       
       
      Obrigado
      Toninho
    • By mkboy
      Olá,
       
      Ví que tem o Forum de PHP.
       
      Dúvidas de Laravel, posso perguntar nele, ou há um específico?
    • By joeythai
      Bom dia pessoal, minha dúvida é simples, vi que alguns arquivos xml tem a saída de data desta forma  "2020-01-22T09:18:50", como faço pra imprimir a data desta forma ? E o que significa esse T?]
      Eu estou usando o Carbon, to tentando encontrar esse padrão na documentação.
      2018-05-29T17:47:57 2018-05-29T17:47:57
    • By joeythai
      Boa tarde pessoal,
       
      Tenho uma API para enviad dados via XML, eu salvo esse xml em um arquivo físico, os dados no arquivo físico me retornam 2 registros com todas as TAGs certinho, porém, quando eu pego a url e mando no browser, esses registros duplicam, alguém sabe o porque disso ? Estou utilizando laravel e a biblioteca DomDocument do PHP. O código esse abaixo:
       
      <code>
      <?php   namespace App\Http\Controllers\API\V1\Integracao;   use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Support\Facades\Validator; use Illuminate\Validation\ValidationException; use App\Services\ToArray; use App\Exceptions\ApiException; use App\Http\Controllers\AppBaseController; use Illuminate\Support\Str; use App\Model\MySql\Site\IntegracaoModel as Integracao; use App\Model\MySql\Site\AuxFotosModel; use DOMDocument;   /** * * Classe criada para retornar informações dos imóveis do site da Sodré * e integrar com o Zap e Viva Real * */   class IntegracaoController extends AppBaseController { private $infos; private $integracao; private $urlImagem = "https://fotos.sodresantoro.com.br/fotos.imoveis/";   public function __construct(Integracao $integracao) { $this->integracao = $integracao; }   public function index() {   $dadosImoveis = $this->integracao->imoveis();   #versao do encoding xml $dom = new DOMDocument("1.0", "UTF-8");   #retirar os espacos em branco $dom->preserveWhiteSpace = false;   #gerar o codigo $dom->formatOutput = true;   #criando o nó principal (root) $root = $dom->createElement("ListingDataFeed"); $domAttrXMLNS = $dom->createAttribute("xmlns"); $domAttrXMLNS->value = 'http://www.vivareal.com/schemas/1.0/VRSync'; $domAttrXMLNSXSI = $dom->createAttribute("xmlns:xsi"); $domAttrXMLNSXSI->value = "http://www.w3.org/2001/XMLSchema-instance"; $domSchemaLocation = $dom->createAttribute("xsi:schemaLocation"); $domSchemaLocation->value = "http://www.vivareal.com/schemas/1.0/VRSync";   #nó filho $listings = $dom->createElement("Listings");   foreach ($dadosImoveis as $imoveis) {   $listing = $dom->createElement("Listing"); $details = $dom->createElement("Details"); $media = $dom->createElement("Media");   foreach ($imoveis->imagens as $key => $imagem) {   $this->infos['imagem'] = $this->urlImagem . $imagem->nome; $item = $dom->createElement("Item", $this->infos['imagem']);   #adiciona atributos nos elementos $domAttrImage = $dom->createAttribute("medium"); $domAttrImage->value = "image";   $domAttrCap = $dom->createAttribute("caption"); $domAttrCap->value = "img" . $key++;   $domAttrPrimary = $dom->createAttribute("primary"); $domAttrPrimary->value = "true"; $item->appendChild($domAttrCap); $item->appendChild($domAttrImage); $media->appendChild($item); } $this->infos['lance_inicial'] = $imoveis->vl_lanceinicial; $this->infos['title'] = $imoveis->title; $this->infos['descricao'] = $imoveis->descricao; $this->infos['lote_id'] = $imoveis->lote_id; $this->infos['endereco'] = $imoveis->Endereco; $this->infos['imagem'] = '';   //Faço o explode para poder fazer o envio(API não aceita casas decimais) //Para consultar: https://developers.grupozap.com/feeds/vrsync/elements/details/#list-price $preco = explode('.', $this->infos['lance_inicial']);   $listPrice = $dom->createElement("ListPrice", $preco[0]); $description = $dom->createElement("Description", htmlspecialchars(str_limit($this->infos['descricao'], 2000)));   $title = $dom->createElement("Title", $this->infos['title']); $listingID = $dom->createElement("ListingID", $this->infos['lote_id']); $transactionType = $dom->createElement("TransactionType", "For Sale"); $usageType = $dom->createElement("UsageType", "Residential"); $propertyType = $dom->createElement("PropertyType", "Residential / Apartment");   #adiciona os nós $details->appendChild($usageType); $details->appendChild($propertyType); $details->appendChild($description); $details->appendChild($listPrice);   $listing->appendChild($title); $listing->appendChild($listingID); $listing->appendChild($transactionType); $listing->appendChild($details); $listing->appendChild($media);   $listings->appendChild($listing); }   $root->appendChild($listings); $root->appendChild($domAttrXMLNS); $root->appendChild($domAttrXMLNSXSI); $root->appendChild($domSchemaLocation);   $dom->appendChild($root);   # Para salvar o arquivo, descomente a linha $dom->save("listagem-imoveis.xml");   #cabeçalho da página #header("Content-Type: text/xml"); # imprime o xml na tela print $dom->saveXML(); return response($dom->saveXML()); }   public function download() { return response()->file(public_path('listagem-imoveis.xml', 'Imóveis')); } } </code>
    • By samuelsennev
      Fala pessoal, beleza? 
      Então, estou tendo esse problema com o laravel 7. O que acontece é: tenho um formulário que manda alguns inputs para o método store(Request $request)--estrutura resource do laravel--, que por sua vez salva no banco de dados. Porém, a aplicação está caindo em uma página em branco antes de chegar no próprio método store. 
      O engraçado é que semana passada funcionava (inclusive salvava os registros no bd)... não fiz alterações que comprometem a rota. Simplesmente parou de funcionar. A aplicação me retorna uma página em branco.
       
      Vale lembrar:
      - A aplicação nem chega no controller;
      - Na primeira linha do método store(Request $request) tem um "dd($request);" para ver o que está chegando... ele nunca retorna a requisição na tela. Logo, presumo que o erro é na rota mesmo.
       
      A rota dentro de web.php: Route::get('/paginaPrincipal-5w2h', 'PT\PT_FiveTwoController@index')->name('index-5w'); Route::post('/salvando-5w2h', 'PT\PT_FiveTwoController@armazenar')->name('salvar-5w'); ------------------------------------------------------------------------------------------------------------------ O formulário da view: <form action="{{route('salvar-5w')}}" method="POST"> @csrf <div class="row"> <div class="col-lg-12S"> <div class="iq-card" > <div class="iq-card-header d-flex justify-content-between" style="border:none;"> <div class="row"> <div class="col-lg-6" style="padding-top: 2%; font-size: 18px;"> <label style="display: inline;">Nome: </label> </div> <div class="col-lg-6"> <input type="text" name="nome" class="form-control round" style="width: 200%;" placeholder="Seu nome..." > </div> </div> </div> </div> </div> </div> <button style="margin-left:90%; margin-bottom: 2%; padding:8px 16px ;" class="btn btn-primary">Salvar</button> </form> -----(A aplicação chega em index() tranquilamente, porém, em armazenar() não)----- O controller: namespace App\Http\Controllers\PT; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Auth; class PT_FiveTwoController extends Controller { public function index() { $user_id = Auth::id(); $data = DB::table('5w2h')->select()->where('user_id', $user_id)->get(); // dd($data); return view('tools.5w2h', ['data' => $data]); } public function armazenar(Request $request) { dd($request); } }
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.