Php 在AJAX调用中尝试在twig文件中打印关系变量时,关系变量为null
我正在使用herbert开发wordpress插件。我有两个控制器,一个(ClientController)通过面板调用,第二个(TimelineController)是一个API控制器,用于在时间线上保存新数据,并通过使用路由的AJAX请求调用 这是我的两个控制器 客户端控制器Php 在AJAX调用中尝试在twig文件中打印关系变量时,关系变量为null,php,ajax,wordpress,symfony,herbert,Php,Ajax,Wordpress,Symfony,Herbert,我正在使用herbert开发wordpress插件。我有两个控制器,一个(ClientController)通过面板调用,第二个(TimelineController)是一个API控制器,用于在时间线上保存新数据,并通过使用路由的AJAX请求调用 这是我的两个控制器 客户端控制器 public function edit(Http $request) { $client = $this->clientsRep->find($input["id"]); $timelin
public function edit(Http $request)
{
$client = $this->clientsRep->find($input["id"]);
$timeline = $client->timeline;
return view('@AdminViews/edit.twig',compact('client', 'timeline'));
}
public function store(Http $request)
{
if($request->ajax())
{
if (is_user_logged_in())
{
$class = ucfirst($request->get('type'));
$c = 'Testing\\HelpedClasses\\TimelineLib\\'.$class;
$activity = new $c();
$activity = $activity->saveActivity($request);
if (is_array($activity))
{
$type = $activity["type"];
$activity = Activities::find($activity["activity_id"]);
$returnHTML = herbert('twig')->render('@AdminViews/edit/timeline_partials/timeline-row.twig', [
'activity' => $activity,
]);
return new JsonResponse(['success' => true, 'html' => $returnHTML, 'type' => $request->get('type'));
}
}
}
}
时间线控制器
public function edit(Http $request)
{
$client = $this->clientsRep->find($input["id"]);
$timeline = $client->timeline;
return view('@AdminViews/edit.twig',compact('client', 'timeline'));
}
public function store(Http $request)
{
if($request->ajax())
{
if (is_user_logged_in())
{
$class = ucfirst($request->get('type'));
$c = 'Testing\\HelpedClasses\\TimelineLib\\'.$class;
$activity = new $c();
$activity = $activity->saveActivity($request);
if (is_array($activity))
{
$type = $activity["type"];
$activity = Activities::find($activity["activity_id"]);
$returnHTML = herbert('twig')->render('@AdminViews/edit/timeline_partials/timeline-row.twig', [
'activity' => $activity,
]);
return new JsonResponse(['success' => true, 'html' => $returnHTML, 'type' => $request->get('type'));
}
}
}
}
以下是模型及其关系
class Client extends Model
{
public function timeline()
{
return $this->hasOne('Test\Models\Admin\Timeline', 'timeline_client_id', 'ID');
}
}
class Activities extends Model
{
public function clientNote()
{
return $this->hasOne('Test\Models\Admin\Notes', 'notes_timeline_activities_id', 'ID');
}
}
这里是风景
编辑.twing
<div class="wrap">
<h1>Edit: {{client.clientMeta.name.value }} {{client.clientMeta.name.lastname }}</h1>
<div class="postbox ">
<ul class="nav nav-pills">
<li class="active"><a href="#1a" data-toggle="tab">Account</a></li>
<li><a href="#timeline" data-toggle="tab">Activity</a></li>
</ul>
<div class="inside">
<div class="tab-content clearfix">
<div class="tab-pane active" id="1a">
{% include '@AdminViews/edit/edit.twig' %}
</div>
<div class="tab-pane" id="timeline">
{% include '@AdminViews/edit/timeline.twig' %}
</div>
</div>
</div>
</div>
</div>
活动之后::查找($activity[“activity_id”]);这两个变量具有正确的值。是否有人知道,如果我正在进行ajax调用,为什么不在细枝文件中显示relationactivity.clientNote的值
谢谢看起来太晚了,仍然想知道你是否解决了问题或需要帮助,如果解决了,请发布答案,因为下一个人将受益,如果没有,请让我知道。看起来太晚了,仍然想知道你是否解决了问题或需要帮助,如果解决了,请张贴答案,因为下一个人将受益,如果没有,请让我知道。
<span class="timeline-key"> <i class="fa fa-bell-o"></i>{{activity.timeline_meta_key}}</span>
<div class="clearfix"></div>
{% if activity.clientNote %}
<p class="note-subject">{{activity.clientNote.notes_subject}}</p>
{% endif %}
{% if activity.clientNote %}
<p class="note-desc">{{activity.clientNote.notes_description}}</p>
{% endif %}
$returnHTML = herbert('twig')->render('@AdminViews/edit/timeline_partials/timeline-row.twig', [
'activity' => $activity,
]);