【发布时间】:2018-06-18 14:07:57
【问题描述】:
我对 Cakephp 3.4 有一个大问题
这是我的控制器:
//$id=$_POST["idString"]; ---- how can i do this in cakephp?
$id = $this->request->data('idString');
$posts = $this->Posts->find('all', array(
'conditions' => array(
'Animal_id' => $id
)
));
$this->set(compact('posts'));
这是我的脚本
$(document).ready(function() {
$(".dropdown-item").click(function(){
idString = $(this).attr("value");
alert(idString);
$.ajax({
type: "POST",
url: "<?php echo \Cake\Routing\Router::url(array('controller' => 'MyControllerName', 'action' => 'index')); ?>",
data: "idString="+idString,
success: function(result){
$("#show").html(result);
}
});
});
});
这是我的索引:
<?php foreach($posts as $post):?>
<li><?= $post->title, $post->text; ?></li>
<?php endforeach ?>
<div id="show">
<--show id-->
</div>
我遇到的错误是
已弃用 (16384):Controller::$layout 已弃用。改用 $this->viewBuilder()->setLayout() 。 [CORE\src\Controller\Controller.php,第 383 行]
它返回一个 div 2 次。
【问题讨论】:
-
您已经为视图控制器设置了旧方法来设置布局,但在 3.x 中,新方法是使用 $this->viewBuilder()->setLayout(layout_file_path),您只需要更新布局设置
-
我应该在哪里更新这个布局?我的意思是问题是我有一个 div "a" 并且在这个 div 里面是一些东西,然后我有这个 div "b" 和 id show 在那里他向我展示了我需要的东西但问题是它返回2次 。它返回 div "a" 和 div "b" 与我所需要的。它返回相同的页面 2 次,一次没有我需要的内容,一次返回该错误和我需要的内容。也许问题出在 ajax 中?对不起我的英语。我希望你明白我的意思。
-
每当收到错误时,请始终发布complete错误,即包括full堆栈跟踪 (最好从日志中以正确可读的方式复制),即使问题对于熟悉 CakePHP 的人来说可能很明显!这也将回答您的“where”问题,因为堆栈跟踪应显示不推荐使用的调用的位置。
-
@SanjayKumarSingh 看看链接你就会明白我的意思了。
标签: php jquery ajax cakephp cakephp-3.0