2017-01-07 29 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'; 
}