'driver' => 'sqlsrv',
'host' => env('DB_EXTERNAL_HOST', '127.0.0.1'),
'port' => env('DB_EXTERNAL_PORT', '1433'),
'database' => env('DB_EXTERNAL_DATABASE', 'forge'),
'username' => env('DB_EXTERNAL_USERNAME', 'forge'),
'password' => env('DB_EXTERNAL_PASSWORD', ''),
'charset' => env('DB_CHARSET', 'utf8mb4'),
'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'),
'prefix' => '',
'strict' => true,
],
< /code>
Вот пример модели < /p>
class CRMProject extends Model
{
protected $connection = 'external_db';
protected $table = 'deviproj_projectBase';
public $timestamps = false;
protected $primaryKey = 'psa_projectId';
public $incrementing = false;
protected $fillable = ['psa_number', 'psa_name', 'CreatedOn'];
}
< /code>
Когда я регистрирую все столбцы, используя Schema :: getColumnListing (), он возвращает пустой массив: < /p>
\Log::info("Available columns " . get_class($query->getModel()), Schema::getColumnListing($query->getModel()->getTable()));
< /code>
Кроме того, когда я проверяю конкретное поле: < /p>
$field = 'statecode';
\Log::info([
'model' => get_class($model),
'table' => $model->getTable(),
'hasColumn' => Schema::hasColumn($model->getTable(), $field),
]);
< /code>
Я получаю: < /p>
hasColumn => false
< /code>
Но поле определенно существует в таблице SQL Server. Я могу подтвердить это через: < /p>
Studio Management Studio < /li>
Прямой DB запрос в Laravel (Model :: SELECT ('stateCode')-> First () работает) < /li>
< /ul>
Подробнее здесь: https://stackoverflow.com/questions/795 ... -laravel-a
Мобильная версия