2017-06-17 114 views
0

如何在laravel中創建獨特的slu and並驗證它們?如何驗證laravel中的slu 5.4 5.4.24

這裏是我的驗證代碼:

$this->validate($request,[ 
     'company_name' => 'required|unique:admin_users,company_name,slug|max:191', 
    ]); 

這裏是我的蛞蝓代碼:

$db_filed->company_name = str_slug($request->company_name, '-'); 

感謝。

回答

1

我想這樣,現在是工作,

這裏是代碼的形式:

<div class="form-group"> 
    <input type="text" class="form-control" placeholder="Company Name" name="company_name" value="{{ ucwords(str_replace('-',' ',old('company_name'))) }}" required> 
</div> 

這裏是控制器代碼:

public function store(Request $request) 
{ 
    $request['company_name'] = str_slug($request->company_name, '-'); 

    $this->validate($request,[ 
     'company_name' => "required|unique:admin_users,company_name|max:191", 
    ]); 
    $db_filed = new AdminUser; 
    $db_filed->company_name = $request->company_name; 

    $db_filed->save(); 
} 
2

設置一個FormRequest做驗證爲了這樣的規則的路線:

https://laravel.com/docs/5.4/validation#form-request-validation

public function rules() 
{ 
    return [ 
     'company_name' => 'required|unique:admin_users,company_name,slug|max:191' 
    ]; 
} 

,或者您需要將其分配給公司的名稱之前創建蛞蝓。

https://laravel.com/docs/5.4/validation#manually-creating-validators

$slug = str_slug($request->company_name, '-'); 

$validator = Validator::make(['company_name' => $slug], [ 
    'company_name' => 'required|unique:admin_users,company_name,slug|max:191' 
]); 

if (!$validator->fails()) { 
    $db_filed->company_name = $slug; 
    $db_filled->save(); 
} 
+0

嗨BTL, 感謝您寶貴的回覆中。我正在嘗試這種方式,但它沒有奏效。但其他領域是工作,如電子郵件和電話那些領域是驗證和檢查獨特的領域。我不明白爲什麼slug驗證不起作用... –

+0

你能舉一個真實的輸入數據的例子,通過一個公司名稱失敗的例子嗎? – btl

+0

這裏是窗體:https://prnt.sc/fkspf6 這裏是控制器:https://prnt.sc/fkspn6 我試過這兩種方式,然後我撤消這些,這是我的舊代碼之前嘗試。 –

0

你可以創建你的控制器內塞可能是存儲功能這樣

public function store(CompanyNameRequest $request) 
{ 
    $slug = uniqid(); 
    $ticket = new CompaanyName(array(
     'title' => $request->get('title'), 
     'content' => $request->get('content'), 
     'slug' => $slug 
    )); 

    $ticket->save(); 

    return redirect('/contact')->with('status', 'Your order is been proccess! Its unique id is: '.$slug); 

}