我有一个和这两个差不多的模特
workflows.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use DB;
class workflows extends Model
{
//getWorkflows
protected $table = 'workflows';
function workFlowStates()
{
return $this->hasMany('App\Models\workflow_states','id','workflow_id');
}
}workflow_states.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use DB;
class workflow_states extends Model
{
//
protected $table = 'workflow_states';
function workFlows()
{
return $this->belongsTo('App\Models\workflows','workflow_id','id');
}
}当我试图在我的控制器上做这件事时
public function editworkflow($id)
{
$wf_model = new workflows;
dd($wf_model::find($id));
}我无法看到任何关系,我只能看到工作流表中的数据。
有人能帮我一下吗
谢谢
发布于 2017-02-08 07:09:08
试试这个:
public function editworkflow($id)
{
echo workflows::with('workFlowStates')->find($id);
}在编辑记录时不要创建对象。就像$wf_model =新工作流一样,您只需调用模型就可以进行查询。
发布于 2017-02-08 06:47:32
这是因为默认情况下,来自关系的数据并不急于加载。只有当您请求或调用关系时,才会检索到它。
因此,在您的代码中,如果您试图在find方法之后访问关系数据,它将从db加载数据,并将其提供给您,称为延迟加载。如下所示:
public function editworkflow($id)
{
$wf_model = new workflows;
dd($wf_model::find($id)->workFlowStates);
}但是,如果您想要加载数据,可以使用雄辩的with函数。但这是没有必要的单一记录,因为它不会有任何区别。
读这个雄辩的热切的负载。
https://stackoverflow.com/questions/42106268
复制相似问题