multi tenancy – Trocar o valor APP_URL do Laravel conforme o domínio que estiver acessando o site

Caros, estou escrevendo uma aplicação que poderá ser acessada por vários domínios e claro que preciso trocar a constante do .env APP_URL para que a formatação dos endereços de imagens por exemplo ocorram no domínio de acesso.

Já busquei esta informação por todos os cantos e não encontro uma explicação clara.

Já sei como implementar rotas diferentes por domínio, mas, como trocar o domínio da aplicação, não descobri de jeito nenhum.

Agradeço a ajuda!

laravel – Keeping the input request as JSON

My application need to post data to external endpoint and getting the response. But that external endpoint disable cross origin so I can’t make the request directly from front-end JS but have to make it from the back-end laravel.

My question is if I post the JSON body data from my JS front-end to my back-end laravel, How to keep it as JSON? So the laravel can POST that JSON data to external endpoint with Guzzle.

Dos metodos de pago en carrito – Laravel

Buenas es la primera vez que tengo que hacer esto en laravel y sobre todo el tener dos metodos de pago. Los metodos de pago van a ser transferencia bacancaria y tarjeta de credito a través de un tpv.

Bien explicado esto tengo ya un checkout donde tengo dos input type radio, donde la elección son los dos distintos modelos de pago.

Mi pregunta es sencilla, necesito consejo. Como hago primero para que según el metodo de pago elegido me vaya a una página o a otra y como tendria que hacer el proceso de rutas, almacenado en bd??. No quiero la solución pero si una guia para saber como construirlo.

Para el carrito utilizo un package compatible con Laravel que se llama bumbummen99 shopping cart.

Esta es mi vista de confirmar pedido

<div class="container espacioCart">
    <section>
      <div class="container">
        <div class="wai">
          <img src="{{ asset('images/svg/home.svg')}}" alt="">
          <span><a href="{{ route('web.index') }}">Inicio</a></span>
          /
          <span><a href="{{ route('web.carrito') }}">Mi-carrito</a></span>
          /
          <span>Confirmar-pedido</span>
        </div>
      </div>
    </section>
  
  @if ($contandor == 0)
    <div class="col-12 separaCarrito">
      <div class="alert alert-info" role="alert">
        No tienes productos en el carrito!
      </div>
      <div>
        <a href="{{ route('web.index') }}" class="btn btn-primary btnContinuarComprando">volver a la tienda</a> 
      </div>
    </div>
  @else
    <!--{{$data}}-->
    <div class="col-12 separaCarrito">
      <table class="table">
        <thead>
          <tr>
            <th></th>
            <th>Producto</th>
            <th class="center">Medida</th>
            <th class="center">Precio</th>
            <th class="center">Cantidad</th>
            <th class="center">Total</th>
          </tr>
        </thead>
        <tbody>
        @foreach ($data as $carrito)
          <tr>
            <td><img src="{{ asset("{$carrito->options->imagen}") }}" alt="" style="width:80px;"></td>
            <td>{{$carrito->name}} <br> <span class="spanTd">{{ $carrito->options->marca }}</span></td>
            <td class="tdoptions">{{$carrito->options->medida}}</td>
            <td class="tdoptions">{{$carrito->price}}€</td>
            <td class="tdoptions">{{$carrito->qty}}</td>
            <td class="tdoptions">{{$carrito->qty * $carrito->price}}€</td>
          </tr>
        @endforeach
        </tbody>
      </table>     
    
    
      <div class="container" style="padding: 4% 0px">
        <div class="row">
          <div class="col-4">
            <div class="cuadroCompra">
              <h2>Mis datos:</h2>
              <div class="padTotales">
                <div class="datosConfirmar"><span>Nombre:</span> {{$usuario->name}} {{$usuario->apellidos}}</div>
                <div class="datosConfirmar"><span>DNI:</span> {{$usuario->dni}}</div>
                <div class="datosConfirmar"><span>Teléfono:</span> {{$usuario->telefono}}</div>
                <div class="datosConfirmar"><span>Email:</span> {{$usuario->email}}</div>
                <div class="separator2-dashed mt-8 mb-5"></div>
                @if ($usuario->direccion == null || $usuario->postal == null || $usuario->ciudad == null || $usuario->provincia == null)
                  <div class="alert alert-warning" role="alert">
                    <i class="fas fa-exclamation-triangle"></i> No tienes una dirección
                  </div>
                  <a href="{{ route('web.editar_usuario', $usuario->id) }}" class="btn btn-primary addDireccion">Añadir dirección</a>
                @else
                    <h4 class="titDirec">Dirección</h4>
                    <div class="direccion">{{$usuario->direccion}} {{$usuario->numeros}}</div>
                    <div class="direccion">{{$usuario->postal}} {{$usuario->ciudad}} ({{$usuario->provincia}})</div>
                @endif
              </div>
            </div>
          </div>
          <div class="col-4">
            <div class="cuadroCompra">
              <h2>Metodo de pago:</h2>
              <div class="padTotales">
                <div class="form-check">
                  <input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios1" value="option1" checked>
                  <label class="form-check-label" for="exampleRadios1">
                    Transferencia bancaria
                  </label>
                </div>
                <div class="form-check">
                  <input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios2" value="option2">
                  <label class="form-check-label" for="exampleRadios2">
                    Pago directo con VISA/Mastercard
                  </label>
                </div>
              </div>
            </div>
          </div>
          <div class="col-4">
            <div class="cuadroCompra">
              <h2>Total compra:</h2>
              <div class="padTotales">
                <div class="row">
                  <div class="col-6 detalleIzq">Transporte:</div>
                  <div class="col-6 detalleDerecha" style="color: #24b324;">Gratis</div>
                  <div class="col-6 detalleIzq">Subtotal:</div>
                  <div class="col-6 detalleDerecha">{{$subtotal}}€</div>
                  <div class="col-6 detalleIzq">IVA 21%:</div>
                  <div class="col-6 detalleDerecha">{{$tax}}€</div>
                </div>
                <div class="row">
                  <div class="col-6 detalleIzq">Total <span>IVA incluido:</span></div>
                  <div class="col-6 detalleDerecha" style="font-weight: 700;">{{$total}}€</div>
                </div>
                <a href="{{ route('web.confirmar_pedido') }}" class="btn btn-primary btnConfirmaPedido">Confirmar compra</a>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  @endif
  </div>

Mi controlador de confirmar pedido

public function confirmar_pedido(Request $res)
    {
        $data = Cart::content();
        $total = Cart::total();
        $contandor = Cart::count(); 
        $subtotal = Cart::subtotal();
        $tax = Cart::tax();
        $usuario = User::where('id', auth()->user()->id)->first();
        return view('confirmar_pedido', (
            'data' => $data,
            "categorias" => $this->categorias,
            "productos" => $this->productos,
            "total" => $total,
            "contandor" => $contandor,
            "subtotal" => $subtotal,
            "tax" => $tax,
            "usuario" => $usuario
        ));
    }

Ruta confirmar pedido

Route::get('carrito/confirmar-pedido', 'Web@confirmar_pedido')->name('web.confirmar_pedido');

php – ¿como se exporta un proyecto de laravel junto a la base de datos correspondiente de laragon o xamp a github?

que se hace con la base de datos, yo suelo crear un proyecto con Laragon en ./www o para Xampp en ./htdocs para obtener las bases de dato, ahora mi problema es que no se como subir la base de datos para que otro usuario pueda clonar mi proyecto y utilizar el proyecto tal cual lo utilizo yo en mi ordenador.

¿que archivo debo agregar de los servidores al proyecto para indicar que le pertenece al proyecto de Laravel?
¿que debe hacer el usuario que clona mi proyecto para tenerlo tal cual lo tengo en mi ordenador?

ya habia probado hacer el proyecto en una carpeta cualquiera y luego pasarla a las carpetas como ./htdocs y no funciona la base de datos que pretendo utilizar (claro que le cambie el nombre en el .env). Lo que digo es que si alguien clona mi proyecto, según yo

jquery select2 – How to resolve Array to String conversion error Laravel

I’m new to laravel and i encountered an array to string conversion error while trying to send tags select form data to sync with my blogs table.

Below is blade snippet that retrieves tags from the database

<div class="form-group">
   <label for="tag" class="control-label">Tags</label>
   {!! Form::select('tag()', $tags, old('tag'), ('class' => 'form-control select2', 'multiple' => 'multiple', 'id' => 'add-tag' )) !!}   
 </div>

The BlogsController

$blog_data = request()->validate((
            'tag.*' => 'required'
    ));

 blogs = Blog::create( $blog_data );  
     $blogs->tags()->sync((array)request()->input('tag'));
 

when i perform a dd on request()->tag

  array:2 (▼
  0 => "1"
  1 => "2"
)

servidor – Deploy en la red de un proyecto desarrollado en laravel

Querria saber que forma teneis vosotros de subir vuestros proyectos desarrollados en laravel a la red a nivel de produccion, es decir, cuando un proyecto este listo para que vea el mundo.

Bueno antes de continuar me gustaria comentaros algo, llevo ya un tiempo desarrollando en php, en concreto Laravel, una herramienta con la que he aprendido todo tipo de cosas y con la que me siento muy seguro a la hora de programar a estas alturas.

He empezado a hacer desarrollos muy intersantes: unos para uso privado y otro con el objetivo de que el mundo lo usara, en el caso de estos ultimos, hasta ahora, lo que hacia era montar un virtual box con un ubuntu server donde estaria alojado a fin de pruebas intermedias (ya no era en un xamp pero tampoco en un alojamiento en a red). Me habria los puertos y tal, tenia control total de mi servidor.

Ahora me veo en el punto en el que quisiera tener un hueco en la red, un pedazo de algo que haya desarrollado, por ahora, desarrollado con laravel.

Bien, dicho esto me gustaria resolver mi duda : deploy en la red de un proyecto desarrollado en laravel:

He visto que existen el tema de docker, no lo conozco a fondo pero entiendo que es un servidor el cual contiene virtualizaciones de otros servidores dentro el como si fueran muchos virtual box. No se si hay algun tipo de docker gratuito o todos son de pago sin ni siquiera poder probarlo y tal. Tambien he visto otro llamado webhost000 pero sinceramente me parece un coñazo subir las cosas y la configuracion tan absurda que he visto que hay que hacer. Entonces, quisiera preguntaros eso mismo: ¿Que haceis para que el mundo vea vuestro proyecto en Laravel? Si me pudiseis explicar vuestra experiencia con el tema os lo agradeceria.

Los dominios en principio usaria cualquier dns gratuito que existen en la red.

P.D.: Me gustaria enfatizar en que mi objetivo es ocupar un lugar en la red.

Gracias y un saludo.

Japanese keyword hack in Laravel website

I have a website build in Laravel , but I am experiencing Japanese keyword hack now
what can I do?

primary key – MySQL id not saving in order (Laravel in production)

enter image description here

I’m really confused about this..

So, I created a Laravel app and hosted it on Heroku. I’m using ClearDB extension to be able to use MySQL. Problem is: when I save a new User on my DB, it is not being saved in ID order.

I got id 1, then id 11 for the second register, then id 21 for the third… Then I deleted them and tried again, and I got id 31. I think, there’s a pattern, huh? It’s going +10, +10… But why?

Look, the code I’m using to save a new register is only: DB::table(‘registers’)->insert($registerData);

On the $registerData variable, I have only the following data: name, e-mail, a url for the picture and birth date.

Even my “migrations” table is in this order: 1, 11, 21, 31…

php – Error al instalar proyecto laravel en Cpanel

Cuando trato de correr mi proyecto me sale el siguiente error:

(21-Jun-2020 14:51:41 UTC) PHP Warning: require(/home/laravel/public_html/../vendor/autoload.php): failed to open stream: No such file or directory in /home/laravel/public_html/index.php on line 24

Alguien me podrá decir como se arregla?

Gracias de antemano por la ayuda que puedan brindarme, saludos

¿Cómo crear un contenedor en docker que contenga el frontend y el backend de un proyecto con laravel (backend) y angular (frontend)?

Hola quiero crear un contenedor en docker con la siguiente estructura:

Directorio Principal
-backend (LAMP Stack + laravel 7)
-frontend (MEAN Stack con Angular 9 + MySQL)
-docker
-php
-php.ini
-apache
-apache2.conf
-vhost.conf

Con una imagen de base de datos MySQL que se pueda compartir con varios contenedores.

Tengo creado un contenedor con LAMP Stack y una imagen de composer funcional, pero no sé cómo hacer funcionar laravel dentro del contenedor.

A continuación muestro el código funcional que tengo del Dockerfile y docker-compose:

Dockerfile:

FROM php:7.4-apache
LABEL maintainer="ruben"
RUN a2enmod rewrite
RUN apt-get update
RUN apt-get update && apt-get install -y 
        libzip-dev 
        libicu-dev 
        libxml2-dev 
        libpq-dev 
        vim 
        curl 
        git 
        supervisor 
        zip 
        unzip 
        && docker-php-ext-install pdo_mysql zip intl xmlrpc soap opcache 
        && docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd

RUN curl -sL https://deb.nodesource.com/setup_12.x | bash -- 
        && apt-get install -y nodejs 
        && apt-get autoremove -y

COPY --from=composer /usr/bin/composer /usr/bin/composer
#COPY docker/php/php.ini /usr/local/etc/php/
#COPY docker/apache/vhost.conf /etc/apache2/sites-available/000-default.conf
#COPY docker/apache/apache2.conf /etc/apache2/apache2.conf

# Suppress the do-not-run-as-root warning from composer
ENV COMPOSER_ALLOW_SUPERUSER 1
COPY . /var/www/html/

docker-compose.yml:

version: "3"
services:
    app:
        image: lamp-img
        container_name: lamp-cont
        build: ./
        restart: always
        ports:
            - "81:80"
        volumes:
            - .:/var/www/html
    myadmin:
        image: phpmyadmin/phpmyadmin
        container_name: phpmyadmin
        restart: always
        depends_on: 
            - mysql
        ports:
            - "82:80"
        links:
            - mysql:db
    mysql:
        container_name: mysql
        image: mysql:8.0
        restart: always
        ports:
            - "83:3306"
        volumes:
            - mysql:/var/lib/mysql
        environment: 
            MYSQL_HOST: 0.0.0.0
            MYSQL_ROOT_PASSWORD: v4n3rub3
volumes:
    mysql:
        driver: "local"

De antemano agradezco toda la ayuda que me puedan dar

Saludos cordiales