我希望能够使用创建表
Schema::create('mytable',function($table)
{
$table->increments('id');
$table->string('title');
});
Run Code Online (Sandbox Code Playgroud)
但在此之前,我想检查表是否已经存在,或许类似于
Schema::exists('mytable');
Run Code Online (Sandbox Code Playgroud)
但是,上述功能不存在.我还能用什么?
Phi*_*rks 186
如果您使用的是Laravel 4或5,那么有hasTable()
方法,您可以在L4源代码或L5文档中找到它:
Schema::hasTable('mytable');
Run Code Online (Sandbox Code Playgroud)
Brn*_*iya 15
要创建一个新表,Laravel Schema函数只能进行一次检查hasTable
.
if (!Schema::hasTable('table_name')) {
// Code to create table
}
Run Code Online (Sandbox Code Playgroud)
但是如果你想在检查它存在之前删除任何表,那么Schema有一个叫做的函数dropIfExists
.
Schema::dropIfExists('table_name');
Run Code Online (Sandbox Code Playgroud)
如果表存在,它将删除表.
guy*_*oni 11
正如 Phill Sparks 回答的那样,您可以使用以下命令检查表是否存在:
Schema::hasTable('mytable')
Run Code Online (Sandbox Code Playgroud)
请注意,在某些情况下您的应用程序使用不同的连接。在这种情况下,您应该使用:
Schema::connection('myConnection')->hasTable('mytable')
Run Code Online (Sandbox Code Playgroud)
use Schema;
(不要忘记在代码的开头使用)。
小智 5
如果您使用不同的连接,那么您必须采用我的回答。
Schema::connection("bio_db")->hasTable('deviceLogs_11_2019')
Run Code Online (Sandbox Code Playgroud)
在hasTable()
函数中,您可以传递 1 个以上的表名。
归档时间: |
|
查看次数: |
58001 次 |
最近记录: |