class SampleELoq extends Model
{
use SoftDeletes;
public function conditionFields() {
return $this->belongsToMany('App\EloquentModel\ConditionField');
}
}
Run Code Online (Sandbox Code Playgroud)
nameSpace 是 SampleELoq 的命名空间
$Eloq = $nameSpace::find(1);
$table = with(new $nameSpace->conditionFields)->getTable();
print_r(Schema::getColumnListing($table));
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得conditionFields的表名?
小智 5
要从 conditionFields 中获取表,您需要返回关系模型,然后您可以通过 getTable 方法获取表。有些像这样
Model::first()->conditionFields()->getRelated()->getTable()
Run Code Online (Sandbox Code Playgroud)
您不必像Catain Fail的回答那样从数据库中检索模型:您可以在任何情况下获取相关的表名,如下所示:
$relation = (new MyModel)->myRelationship(); // Returns a Relations subclass like BelongsTo or HasOne.
$relatedModel = $relation->getRelated(); // Returns a new empty Model
$tableName = $relatedModel->getTable();
Run Code Online (Sandbox Code Playgroud)
或者简而言之:
$tableName = (new MyModel)->myRelationship()->getRelated()->getTable();
Run Code Online (Sandbox Code Playgroud)
你有两种方法:-
dd(Model::$table);
Run Code Online (Sandbox Code Playgroud)
或者在你的模型中:-
dd($this->table());
Run Code Online (Sandbox Code Playgroud)