Php 如何在octobercms中使用依赖关系路由?

Php 如何在octobercms中使用依赖关系路由?,php,ajax,laravel,octobercms,Php,Ajax,Laravel,Octobercms,我目前正在使用ajax数据请求开发一个前端表单。在我的代码中,当选择“选择”框中的某个类别以显示子类别时,php块中会显示这一部分 function onChangeCat() { $this['subs'] = Cat::whereHas('parent', function ($query) use($cats){ $query->where('cats','=', $cats ); })->pluck('cat_title', 'id'); 我试图将其连接到路由,以便

我目前正在使用ajax数据请求开发一个前端表单。在我的代码中,当选择“选择”框中的某个类别以显示子类别时,php块中会显示这一部分

function onChangeCat()
{
$this['subs'] = Cat::whereHas('parent', function ($query) use($cats){

 $query->where('cats','=', $cats );

})->pluck('cat_title', 'id'); 
我试图将其连接到路由,以便当用户单击某个类别时,相关子类别将显示在第二个选择框中

这是我的路由文件,id为“类别选择框”作为参数

Route::get('ajax/{cats}' , function () {

//
 return json_encode();
});
如何连接php块和路由中的代码,以便只显示类别的相关子类别

十月CMS有一个$this->params方法,可以调用该方法从当前请求获取url参数,请参见。未经测试的代码应如下所示:

Route::get('ajax/{cats}' , function () {
    $results = Cat::whereHas('parent', function ($query) {

        $query->where('cats', $this->param('cats'));

    })->pluck('cat_title', 'id')->all(); 

    return $results;
}

要将当前元素值传递给Ajax处理程序,需要为其指定name-attribute并添加data request=onChange处理程序。所有其他内容将由10月CMS Ajax Api处理

A. B C D 在Ajax处理程序中

功能变化{ $id=post'country';//我们为select命名为'country' //^-这将是您选择的值[id] 返回['data'=>'some data']; } 进一步处理数据[如果需要的话]从其他方面来说,您可以使用data request update=calcresult:“result”和返回的Html标记

函数myFunctiondata{ console.logdata } ... 在成功完成请求后,这将使用返回数据调用myFunction。在我们的示例中,它将是{'data':'some data'}JSON对象,无论您从Ajax处理程序返回什么


如果有任何疑问,请发表评论。

谢谢,我的问题可能不是很清楚。问题可能是如何在代码中使用routes创建依赖关系我可以在php块中使用一个简单的查询,并使用foreach填充类别。现在假设数据请求和ajax处理程序将填充子类别。只是想知道如何使用routes来执行此操作,以便只显示类别的相关子类别。@OsujiKingsley您需要实际的ajax功能吗?是的,我已经在类别选择中添加了data request=onChangeCatand data request update=select:“subcategory”,并进行了部分设置。想知道如何将数据请求连接到路由。是否查看了数据请求更新属性,该属性将在成功时更新指定的部分路由?有关更多信息,请参见?@OsujiKingsley抱歉,我误读了您的上一条评论,更新属性是否不起作用?数据请求不能与路由相结合,因为设计数据请求将请求当前url,并从当前页面、布局、XYZ上的部分[代码块]和包含的组件中搜索ajax处理程序,因此,您不能在外部为数据请求API指定URL[route],如果您想使用route,则需要手动执行Ajax。是否有方法在不使用route的情况下将id传递给onXyz?添加了如何将值传递给Ajax处理程序的答案,请检查