相关疑难解决方法(0)

在运行时更新表名称不起作用 - laravel Eloquent ORM

这是我的模特:

class Product extends \GlobalModel {
    protected $table = 'product';
}
Run Code Online (Sandbox Code Playgroud)

我想在运行时更新表名oops_product而不是product.

我找到了getTable(); 从模型中获取表名称及其工作正常:

$tableName = with(new Product)->getTable();
Run Code Online (Sandbox Code Playgroud)

但是当我使用setTable()设置表名时; 根据GitHub解决方案,它不更新表名.

with(new Product)->setTable("oops_produdct");
Run Code Online (Sandbox Code Playgroud)

有什么不对的吗?

帮助将不胜感激.

编辑:

$product = new Product(); 
$product->getTable(); // output: product 
$product->setTable("oops_product"); 
$product->getTable(); // output: oops_product 
Run Code Online (Sandbox Code Playgroud)

现在,当我运行这个

$product->all(); 
Run Code Online (Sandbox Code Playgroud)

它执行

"select * from product" 
Run Code Online (Sandbox Code Playgroud)

代替

"select * from oops_product"
Run Code Online (Sandbox Code Playgroud)

model eloquent laravel-4

8
推荐指数
2
解决办法
6510
查看次数

标签 统计

eloquent ×1

laravel-4 ×1

model ×1