我有一个建议性问题,我需要构建具有动态列顺序、名称的表,并给予用户能够添加新列(最多6个)。在Laravel 8 with MySQL DB中做这些事情的最佳方法是什么。我的第一个想法是添加另一个与此表相关的表(一个用于订单,一个用于新名称,一个用于新列)但仍然错过了东西,我认为这个想法有问题。如果有人能帮忙的话。
z31licg01#
要在PHP、Laravel和MySQL中创建动态列(order、name、number with limit),您可以使用Eloquent并使用动态列集查询数据库。在控制器中,定义一个变量来保存要检索的列:
$columns = ['name', 'order', 'number'];
使用Eloquent select方法从数据库中选择列:$data =模型::选择($列)-〉get();如果要对检索的记录数应用限制,可以使用take方法:
$data = Model::select($columns)->take(10)->get();
如果要按特定列对结果进行排序,可以使用orderBy方法:
$data = Model::select($columns)->orderBy('order', 'asc')->get();
如果要按特定条件筛选结果,可以使用where方法:
$data = Model::select($columns)->where('number', '>', 5)->get();
您可以将所有这些方法链接在一起,以创建更复杂的查询:
$data = Model::select($columns)->where('number', '>', 5)->orderBy('order', 'asc')->take(10)->get();
请记住,您可以使用任何列名来代替“名称”、“顺序”和“编号”,只要它们存在于您的数据库表中,并且您还应该使用您的数据库的表名来代替模型。
1条答案
按热度按时间z31licg01#
要在PHP、Laravel和MySQL中创建动态列(order、name、number with limit),您可以使用Eloquent并使用动态列集查询数据库。
在控制器中,定义一个变量来保存要检索的列:
使用Eloquent select方法从数据库中选择列:
$data =模型::选择($列)-〉get();如果要对检索的记录数应用限制,可以使用take方法:
如果要按特定列对结果进行排序,可以使用orderBy方法:
如果要按特定条件筛选结果,可以使用where方法:
您可以将所有这些方法链接在一起,以创建更复杂的查询:
请记住,您可以使用任何列名来代替“名称”、“顺序”和“编号”,只要它们存在于您的数据库表中,并且您还应该使用您的数据库的表名来代替模型。