Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

441
Views
Tabla base no encontrada en la validación de valor único en MongoDB con laravel

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?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

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'; }
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!