当有人在我建造的应用程序中创建帐户时,他们必须提供一个国家/地区。
为了向用户提供可供选择的国家/地区列表,有一个countries
表格,其中包含两个字段:id
和country_code
。 users
表格中有country_id
字段。
我想使用名为country
的选择框而不是country_id
,但我无法知道如何实现这一目标。任何的想法?当然,验证和东西仍然需要工作。
此外,是否必须在验证码中指定countries.id
的精确字段?现在,我有这个:
$this->validate($request, [
'name' => 'required',
'country_id' => 'required|exists:countries,id'
]);
如上所述,属性名称应为country
而不是country_id
,但由于我已指定用户与国家/地区模型之间的Eloquent关系,因此执行类似'required|exists:countries'
的操作诀窍,对吗?
答案 0 :(得分:2)
$this->validate($request, [
'country' => 'required|integer|exists:countries,id'
]);
验证
country == name attribute
countries == table name
So it will check the value from selected option(id) with existing id in countries table
$user = New User;
$user->country_id = $request->input('country');
$user->save();
如果国家/地区存在于具有所选ID保存用户的表国家/地区
integer
Laravel验证不会将DB中的列与输入名称绑定在一起
我还要在exists