Laravel 模型 - 如果数据库表不存在则返回 null
Posted
技术标签:
【中文标题】Laravel 模型 - 如果数据库表不存在则返回 null【英文标题】:Laravel model - return null if the DB table doesn't exist 【发布时间】:2020-06-22 10:21:07 【问题描述】:创建模型时,我想检查数据库中是否存在该表。如果不是,那么我想返回一个空值。这是为了防止表不存在时插入记录。
在我的模型中我已经尝试过了。 Schema 调用返回 false,但我仍然返回一个模型而不是 null。
class SomeDataTable extends Model
public function __construct($id)
$this->setTable($id);
if (Schema::connection($this->connection)->hasTable($this->table) === false)
return null;
else
parent::__construct();
public function setTable($id)
$this->table = $id.'_some_data_table';
【问题讨论】:
这不是正确的方法。您必须有模型表。 对,这就是为什么我要在创建模型之前检查表是否存在。 如果你正在创建模型类,你必须有它的表。我正在尝试解决模型可能没有表格的原因 你不能在构造函数中返回null
,构造函数用于通过赋值来初始化对象及其属性。当您希望对象变为可为空时。这意味着您要销毁对象或清理资源。
"这是为了防止在表不存在时插入记录。"表不存在肯定不能插入记录。
【参考方案1】:
我不确定您是否正在寻找一种无处不在的解决方案。但我要做的是在终端中执行php aritsan migrate -m
来运行所有模型的迁移。这样,默认情况下会创建所有模型表。
【讨论】:
以上是关于Laravel 模型 - 如果数据库表不存在则返回 null的主要内容,如果未能解决你的问题,请参考以下文章