【问题标题】:Creating friendly url in php using slim framework使用 slim 框架在 php 中创建友好的 url
【发布时间】:2016-03-29 20:39:56
【问题描述】:

我想打开像www.website.com/slim/username 这样的个人资料页面(username 是唯一的)。

我目前正在使用slim php 框架来路由GET 请求。因此,当我打开 www.website.com/profile/username 时,它会正确执行为 /username 定义的路由并给出这样的简单 json 响应

{"users":[{"id":"01","firstname":"kamron","lastname":"shaw","gender":"male","status":"Offline"}]}

从这一点开始,我想将此数据与个人资料页面模板集成,因此我在www.website.com/profile.php 制作了个人资料页面模板,并从那里使用ajaxGET 发出请求
www.website.com/slim/username并接收数据并用模板显示。

问题是如果用户直接导航到www.website.com/slim/username,他将只能看到原始的JSON 响应。

我希望用户在直接从浏览器发出GET 请求时看到带有模板的JSON 响应。

我怎样才能做到这一点?如果我在任何地方错了,请纠正我并告诉我一个合适的方法。

【问题讨论】:

    标签: php jquery ajax slim


    【解决方案1】:

    使用 $isXHR = $app->request->isAjax(); 或者 $isXHR = $app->request->isXhr(); 检查请求是否为ajax。如果不是 ajax,则重定向到您想要的页面(如果已登录,则可能是个人资料,如果未登录,则可能是登录页面)

    if($isXHR){
       echo 'json';
    }else{
       render view
    }
    

    【讨论】:

    • 但我确实希望用户能像在 facebook 中一样看到个人资料。
    • 我的理解是:这个 url www.website.com/slim/username 提供 JSON 数据 这个 url www.website.com/profile.php 提供模板但是你想在这个 url www.website.com/slim/username 上显示个人资料页面所以不要重定向如果请求不是ajax。渲染模板。
    • 如果用户想查看其他成员的个人资料怎么办?当用户打开“ www.website.com/slim/username ”时,用户应该会看到具有不同名字、姓氏性别等的相同模板
    • 如何将用户详细信息呈现到模板中?模板是静态的吗?您必须使用用户名( url 参数)获取用户详细信息并传递给视图并呈现它。或者您可以通过 ajax cal 将用户详细信息加载到加载时的 url。
    • 是的,我正在使用 jquery 在“www.website.com/profile.php”下加载通过 ajax 调用加载到 url(www.website.com/slim/username) 的用户详细信息
    猜你喜欢
    • 2016-06-02
    • 2015-06-02
    • 2022-01-10
    • 2022-01-02
    相关资源
    最近更新 更多