
以下是从 Laravel 中的表中获取列名称的不同方法。
假设我们使用以下查询在MySQL数据库中创建了一个名为Students的表:
CREATE TABLE students( id INTEGER NOT NULL PRIMARY KEY, name VARCHAR(10) NOT NULL, email VARCHAR(15) NOT NULL, created_at VARCHAR(27) NOT NULL, updated_at VARCHAR(27) NOT NULL, address VARCHAR(3) NOT NULL );
您可以使用DESC命令获取其完整详情 -
mysql> desc students; +------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+-------+ | id | int | NO | PRI | NULL | | | name | varchar(15) | NO | | NULL | | | email | varchar(20) | NO | | NULL | | | created_at | varchar(27) | YES | | NULL | | | updated_at | varchar(27) | YES | | NULL | | | address | varchar(30) | NO | | NULL | | | age | int | YES | | NULL | | +------------+-------------+------+-----+---------+-------+ 7 rows in set (0.08 sec)
使用schema类,您可以在Laravel中创建和更新表。要使用schema类,将以下类添加到您的控制器中。
use Illuminate\Support\Facades\Schema;
这是一个使用schema类的工作示例 -
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Schema;
class StudentController extends Controller {
public function index() {
$columns = Schema::getColumnListing('students');
print_r($columns);
}
}
上述代码的输出如下。
Array( [0] => id [1] => name [2] => email [3] => created_at [4] => updated_at [5] => address )
Laravel 中的 Model 类代表数据库中的表。例如,如果您有学生表,则模型名称将为student,对于用户,模型名称将为user,对于员工,模型名称将为“employee”。表名必须是复数,模型名称必须是单数。这是遵循的模式,但这并不妨碍您使用您选择的表名称和模型名称的命名约定。
创建学生模型如下 -
采用zblog修改的模板,简单方便,直接解压上传到空间即可使用,页面简单,适合SEO,导航,次导航,最新文章列表,随机文章列表全部都有,网站采用扁平结构,非常适用淘宝客类小站,所有文章都在根目录下。所有需要修改的地方在网页上各个地方都有标注说明,一切在网站后台都可以修改,无须修改任何程序代码,是新手的不二选择。后台登陆地址: 域名/login.asp用户名:admin (建议不要修改)密码:adm
1
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Student extends Model {
use HasFactory;
protected $fillable = ['name','email','address'];
}
现在在你的控制器中使用模型来获取列名 -
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Student;
class StudentController extends Controller {
public function index() {
$student = Student::first();
$table_columns = array_keys(json_decode($student, true));
print_r($table_columns);
}
}
上述代码的输出结果为。
Array( [0] => id [1] => name [2] => email [3] => created_at [4] => updated_at [5] => address )
您还可以使用控制器内部所示的数据库外观类 -
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DB;
class StudentController extends Controller {
public function index() {
$table = DB::table('students')->get();
$cols = array_keys(json_decode(json_encode($table[0]), true));
print_r($cols);
}
}
上述代码的输出是 -
Array ( [0] => id [1] => name [2] => email [3] => created_at [4] => updated_at [5] => address )
使用数据库外观获取列的另一种方法是 -
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DB;
class StudentController extends Controller {
public function index() {
$columns_names = [];
$tableDet = DB::select("SHOW COLUMNS FROM students");
foreach($tableDet as $column) {
$columns_names[$column->Field] = '';
}
print_r($columns_names);
}
}
上述代码的输出结果为。
Array ( [id] => [name] => [email] => [created_at] => [updated_at] => [address] => )
以上就是在Laravel中如何选择表中的所有列名?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号