Symfony2 - 无论如何都要实现类似jsf片段的东西?

时间:2014-10-15 06:14:06

标签: symfony

我的意思是,一些代码具有与特定树枝模板相关的逻辑以及控制器内部另一页的相关逻辑。

类似于为用户提供特定数据的栏。姓名,州,电话号码和一些服务和 这个逻辑包括我想把它包含在我决定的页面中。只是重用它。

1 个答案:

答案 0 :(得分:2)

您可以渲染一个控制器,从您的视图中返回该数据,或者创建一个获取数据并将其暴露给树枝的服务。

1。控制器示例

控制器

class UserDataController extends Controller
{
    public function userDataAction()
    {
        $userData = // fetch user data....

        return $this->render('user_data_fragment_template.html.twig', ['user_data' => $userData]);
    }
}

您想要显示该片段的某个模板

<div>{{ render(controller('YourBundle:UserDataController:userData')) }}</div>

2。服务示例

数据提供商服务

class UserDataProvider
{
    public function __construct(...)
    {
        ....
    }

    public function getUserData()
    {
        $userData = // fetch user data...

        return $userData;
    }
}

config.yml

// ...

twig:
    globals:
        user_data_provider: @your_user_data_provider_service_name

您想要显示该片段的某个模板

<div>{% include 'user_data_fragment_template.html.twig' with { userData: user_data_provider.userData } only %}</div>