You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Laravel Schema中获取列的nullable属性(替代Doctrine DBAL)

在Laravel 11中通过原生Schema判断列属性

Laravel 11弃用Doctrine DBAL后,你完全可以用框架原生的Schema方法来获取列的nullable及其他属性,无需自行编写原生SQL。

获取整表的列信息

使用Schema::getColumns($tableName)方法可以获取指定表的所有列详情,返回的数组中每个元素对应一列,包含nullable、type、default等关键属性:

use Illuminate\Support\Facades\Schema;

// 获取users表的所有列信息
$columns = Schema::getColumns('users');

foreach ($columns as $column) {
    // 判断列是否允许为空
    $isNullable = $column['nullable'];
    // 获取列类型
    $columnType = $column['type'];
    // 获取列默认值
    $defaultValue = $column['default'];
}

获取单个列的信息

如果只需要某一列的属性,可使用Schema::getColumnDefinition($tableName, $columnName)直接获取目标列的详情:

$emailColumn = Schema::getColumnDefinition('users', 'email');
// 判断email列是否允许为空
$isEmailNullable = $emailColumn['nullable'];

这些方法是Laravel原生实现的,会自动适配当前连接的数据库(MySQL、PostgreSQL、SQLite等),完全替代了之前依赖Doctrine DBAL的方式。

内容的提问来源于stack exchange,提问作者rozsazoltan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 08:30:55