2017-01-07 18 views
1

我使用laravel 5.3 jenssegers/laravel-mongodb的包管理mongodb的连接找到。基表不是唯一的值的验证MongoDB中与laravel

我要检查用户每次向我的控制器上注册一个网站的请求,如果它是唯一然后让用户登记他/她的网站域名。

我写了下面的代码进行验证,但我得到的结果是:

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) 

我控制器代码:

public function store(Request $request) { 
    $seat = new Seat(); 

    $validator = Validator::make($request->all(), [ 
      'domain' => 'required|regex:/^([\da-z\.-]+)\.([a-z\.]{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; 
     } 
    } 
} 

我的座位型号:

namespace App; 

use Moloquent; 
use Carbon\Carbon; 

class Seat extends Moloquent { 
    protected $collection = 'seat'; 
    protected $connection = 'mongodb'; 

    public function getCreatedAtAttribute($value) { 
     return Carbon::createFromTimestamp(strtotime($value)) 
      ->timezone('Asia/Tehran') 
      ->toDateTimeString(); 
    } 
} 

显然验证被检查是否域处于引起此错误MySQL表独特的,我怎样才能改变我的验证公关ocess检查MongoDB中,而不是MySQL的?

回答

0

我解决了这个问题,解决的办法是,你应该添加Moloquent到模型并定义数据库连接:

namespace App\Models; 

use Moloquent; 
use Carbon\Carbon; 

class Seat extends Moloquent 
{ 
    protected $collection = 'seat'; 
    protected $connection = 'mongodb'; 
}