因此,我的代码成功创建了结构完全相同的动态表(出于我自己的原因,我需要这种方式)。
但是,当我想将数据添加到任何动态创建的表中时,问题就出现了,因为我没有它的模型,就像我通常创建表/模型时那样。
所以,我想知道如何解决这个问题?
我可以以某种方式使用这种逻辑吗?
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 = [
.
.
.
所以我假设,这样,我们可以使用这个模型将表名称动态更改为存储在 session 变量中的名称。
因此我们不必为每个表创建单独的模型。
这可以实现吗?或者每次在数据库中动态创建表时都必须创建一个单独的模型文件?
如果我的建议根本上是错误的或有任何相关的内容,我很抱歉。我对 PHP 和 Laravel 还很陌生。
等待您的好意建议。
谢谢
最佳答案
更好地使用流畅的查询构建器
db
u can add dynamically table name with insert,update,read,delete operation
例如
get record from db
DB::table($tableName)->all()
for insert
DB::table($tableName)->insert(['name' => $name]);
for automatically added created_at and updated_at add in migration
$table->timestamp('created_at')->default(\DB::raw('CURRENT_TIMESTAMP'));
$table->timestamp('updated_at')->default(\DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));
关于php - Laravel:将动态表名称传递给模型,例如 protected $table = "$tablename",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52905313/