所以我的代码成功创建了结构完全相同的动态表(出于我自己的原因,我需要这种方式)。
但是,当我想将数据添加到任何动态创建的表中时(因为我没有模型),就会出现问题,就像我通常创建表/模型时那样。
所以,我想知道如何解决这个问题?
我可以以某种方式使用这种逻辑吗?
namespace App;
use Illuminate\Database\Eloquent\Model;
class sys_cats extends Model
{
// I know we can't use variable in class like this
// but this is just to explain what kind of logic I have
// in mind.
$category = Session::get('catName');
protected $table = "$category";
protected $primarykey = 'id';
protected $fillable = [
.
.
.
因此,我假设以这种方式,我们可以使用此模型将表名动态更改为存储在会话变量中的名称。
因此我们不必为每个表创建一个单独的模型。
这可以实现吗?还是每次在数据库中动态创建表时也必须创建一个单独的模型文件?
很抱歉,如果我的建议本质上是错误的或任何相关的内容。我是PHP和Laravel的新手。
等待您的建议。
谢谢
答案 0 :(得分:0)
更好地使用fluent query builder
db
u可以通过插入,更新,读取,删除来动态添加表名 操作
例如
从数据库获取记录
DB::table($tableName)->all()
用于插入
DB::table($tableName)->insert(['name' => $name]);
用于自动添加的created_at和updated_at添加迁移
$table->timestamp('created_at')->default(\DB::raw('CURRENT_TIMESTAMP'));
$table->timestamp('updated_at')->default(\DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));