Estoy usando laravel 5.3 con el paquete jenssegers/laravel-mongodb para administrar las conexiones mongodb.
Quiero verificar cada vez que un usuario envía una solicitud para registrar un sitio web en mi controlador si es único y luego permitir que el usuario registre el dominio de su sitio web.
Escribí el siguiente código para la validación, pero lo que obtengo como resultado es:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'iranad.seat' doesn't exist (SQL: select count(*) as aggregate from `seat` where `domain` = order.org)mi código de controlador:
public function store(Request $request) { $seat = new Seat(); $validator = Validator::make($request->all(), [ 'domain' => 'required|regex:/^([\da-z\.-]+)\.([az\.]{2,6})([\/\w \.-]*)*\/?$/|unique:seat', //validating user is entering correct url like : iranad.ir 'category' => 'required', ]); if ($validator->fails()) { return response()->json($validator->messages(), 400); } else { try { $statusCode = 200; $seat->user_id = Auth::user()->id; $seat->url = $request->input('domain'); $seat->cats = $request->input('category'); $seat->filter = []; if($request->input('category') == 'all') { $obj['cats'] = 'false'; $seat->target = $obj; } else { $obj['cats'] = 'true'; $seat->target = $obj; } $seat->status = 'Waiting'; $seat->save(); } catch (\Exception $e) { $statusCode = 400; } finally { $response = \Response::json($seat, $statusCode); return $response; } } }Mi modelo de asiento:
namespace App; use Moloquent; use Carbon\Carbon; class Seat extends Moloquent { public function getCreatedAtAttribute($value) { return Carbon::createFromTimestamp(strtotime($value)) ->timezone('Asia/Tehran') ->toDateTimeString(); } }Obviamente, el validador está verificando si el dominio es único en las tablas mysql, lo que causa este error. ¿Cómo puedo cambiar mi proceso de validación para verificar mongodb en lugar de mysql?
Resolví el problema. La solución es que debe agregar Moloquent a su modelo y definir la conexión de la base de datos:
namespace App\Models; use Moloquent; use Carbon\Carbon; class Seat extends Moloquent { protected $collection = 'seat'; protected $connection = 'mongodb'; }