Php 验证程序中的Laravel更改连接不工作
我有一个系统,用Laravel构建,连接在两个数据库中,一个是mysql,另一个是mssql。我的默认连接是mysql:Php 验证程序中的Laravel更改连接不工作,php,database,validation,laravel,Php,Database,Validation,Laravel,我有一个系统,用Laravel构建,连接在两个数据库中,一个是mysql,另一个是mssql。我的默认连接是mysql: 'default' => 'mysql', 及 然后我的控制器: public function store(Request $request) { Validator::extend('unique_multiple', function ($attribute, $value, $parameters) { // Get table
'default' => 'mysql',
及
然后我的控制器:
public function store(Request $request)
{
Validator::extend('unique_multiple', function ($attribute, $value, $parameters)
{
// Get table name from first parameter
$table = array_shift($parameters);
// Build the query
$query = DB::table($table);
// Add the field conditions
foreach ($parameters as $i => $field)
$query->where($field, $value[$i]);
// Validation result will be false if any rows match the combination
return ($query->count() == 0);
});
$file = Input::file('file');
$count = 0;
Excel::load($file, function($reader) use ($count) {
$results = $reader->get()->toArray();
// Set connection to sqlsrv
$verifier = App::make('validation.presence');
$verifier->setConnection('sqlsrv');
foreach ($results as $key => $value) {
$validator = Validator::make(
// Validator data goes here
array(
'unique_fields' => array($value['telephone'], $value['columnheadername'])
),
// Validator rules go here
array(
'unique_fields' => 'unique_multiple:Deliveries,Telephone,ColumnHeaderName',
'file' => 'required'
)
);
$validator->setPresenceVerifier($verifier);
if ($validator->fails())
{
return Redirect::to('delivery/create')->withErrors($validator);
}
else
{
$deliveries = new Delivery();
$deliveries->Title = $value['title'];
$deliveries->Firstname = $value['firstname'];
$deliveries->Surname = $value['surname'];
$deliveries->Address1 = $value['address1'];
$deliveries->Address2 = $value['address2'];
$deliveries->Address3 = $value['address3'];
$deliveries->Address4 = $value['address4'];
$deliveries->Town = $value['town'];
$deliveries->County = $value['county'];
$deliveries->Postcode = $value['postcode'];
$deliveries->Telephone = $value['telephone'];
$deliveries->Email = $value['email'];
$deliveries->AgeBracket = $value['agebracket'];
$deliveries->Gender = $value['gender'];
$deliveries->Filename = $value['filename'];
$deliveries->CalledDate = $value['calleddate'];
$deliveries->ColumnHeaderName = $value['columnheadername'];
$deliveries->Answer1 = $value['answer1'];
$deliveries->Answer2 = $value['answer2'];
$deliveries->Answer3 = $value['answer3'];
$deliveries->Answer4 = $value['answer4'];
$deliveries->Answer5 = $value['answer5'];
$deliveries->HomeOwner = $value['residentialstatus'];
$deliveries->MaritalStatus = $value['maritalstatus'];
$deliveries->WorkStatus = $value['incomebracket'];
if($deliveries->save()){$count++;}
}
}
Session::flash('alert-success', 'Data Uploaded Successfully! '.$count.' leads uploaded');
});
return Redirect::to('delivery/create');
}
您可以看到以下行:
$verifier = App::make('validation.presence');
$verifier->setConnection('sqlsrv');
但仍然有这个错误:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'qdf_api.deliveries' doesn't exist (SQL: select count(*) as aggregate from `Deliveries` where `Telephone` = 01482828164 and `ColumnHeaderName` = EDF_3320)
交付表位于我的
sample\u test
数据库中,该数据库位于sqlsrv
连接中。这就是为什么我切换到sqlsrv
连接,但似乎不起作用?两个连接的数据库名称不相同,您可能在.env文件中添加了qdf\u api数据库名称。正因为如此,您得到了错误。您好。我的环境没有qdf_api。是的,我有两个正在连接的数据库。我正在尝试在一个特定的数据库连接中进行验证,但目前该连接不起作用。在您的.env文件中,在数据库前面设置了什么?另外,我已经删除了数据库中的env。php@jackhammer013我已经更新了我的答案,看看这是否有帮助。
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'qdf_api.deliveries' doesn't exist (SQL: select count(*) as aggregate from `Deliveries` where `Telephone` = 01482828164 and `ColumnHeaderName` = EDF_3320)