我正在使用laravel 5.4并且我有第二个公司用户表,经过长时间的搜索和与代码的斗争,我终于想到如何将数据保存在正确的表中,但有2个问题我仍然需要解决。
这是我的registercontroller(你可以看到我没有任何dd();
):
<?php
namespace App\Http\Controllers\Auth;
use App\Company;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Support\Facades\Input;
use Illuminate\Http\Request;
use Hash;
use Session;
class CompanyRegisterController extends Controller
{
/**
* Where to redirect users after registration.
*
* @var string
*/
protected $redirectTo = 'companies';
public function __construct() {
$this->middleware('guest:company');
}
protected function index()
{
return view('auth.company-register');
}
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data)
{
return Validator::make($data, [
'company_name' => 'required|string|max:255',
'manager_name' => 'required|string|max:255',
'username' => 'required',
'email' => 'required|string|email|max:255|unique:companies',
'password' => 'required|string|min:6|confirmed',
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return User
*/
protected function create(Request $request)
{
return Company::create([
'company_name' => Input::get('company_name'),
'manager_name' => Input::get('manager_name'),
'username' => Input::get('username'),
'email' => Input::get('email'),
'password' => Hash::make($request->password)
]);
Session::flash('success', 'Welcome, thank you for choosing us for your advertise.');
return redirect()->route('company.dashboard');
}
}
感谢。
答案 0 :(得分:2)
用户注册dump_var后会弹出!除非重定向到仪表板
ModelName::create()
返回创建的实例,并返回结果。所以这很有道理。您甚至评论了您的方法:@return User
。如果您不想返回创建的用户:
protected function create(Request $request)
{
Company::create([
'company_name' => Input::get('company_name'),
'manager_name' => Input::get('manager_name'),
'username' => Input::get('username'),
'email' => Input::get('email'),
'password' => Hash::make($request->Password)
]);
return 'Something else, a string or a view for example';
}
密码字段不会保存到数据库
当您验证密码时,您写了'password' => 'required|string|min:6|confirmed'
,因此我推断您已将密码字段命名为password
。虽然在您创建用户时,您尝试通过Password
检索名为$request->Password
的字段。注意大写字母。 “P”不应该是小写的吗?
更新
这个答案是完全正确的,我只是忘了在我的模型中添加password
字段以便填写
protected $fillable = [
'company_name', 'manager_name', 'username', 'email', 'image', 'about', 'address', 'password',
];