Schema :: hascolumn () возвращает false для существующих столбцов таблицы SQL с использованием Laravel и внешнего соединPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Schema :: hascolumn () возвращает false для существующих столбцов таблицы SQL с использованием Laravel и внешнего соедин

Сообщение Anonymous »

Я работаю над проектом Laravel 12, который подключается к базе данных Microsoft Dynamics CRM SQL Server через пользовательское подключение. Я столкнулся с озадачительной проблемой: Схема Ларавела :: hascolumn () возвращает False для столбцов, которые определенно существуют в базе данных. /> 💾 Контекст
Вот мое соединение с базой данных из config/database.php :

Код: Выделить всё

'external_db' => [
'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'];
}
🧪 Код отладки
Когда я регистрирую все столбцы, используя Schema :: getColumnListing () , он возвращает пустую массив:

\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>
[list]
[*] Студия управления сервером SQL < /li>
 Прямой DB запрос DB в Laravel (Model::select('statecode')->first()
работает)
[/list]
❓ Вопрос
Почему Schema :: hascolumn () False для действительных столбцов SQL Server в Laravel? Схемы SQL на основе CRM? < /P>
Любая помощь или лучшие практики будут оценены. Я хочу избегать имен поля жестко, но в настоящее время я вынужден обойти это.
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/795 ... -laravel-a
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»