V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ChenKe
V2EX  ›  程序员

关于 PHP 框架 laravel 的一些小问题

  •  
  •   ChenKe · 2016-07-14 14:02:27 +08:00 · 2587 次点击
    这是一个创建于 2845 天前的主题,其中的信息可能已经有所发展或是发生改变。

    blade 模板的使用方法我清楚

    遍历对象是通过 get 获取的

    今天需要传递给模板的数据是根据 多表联查组合 最后加一些临时字段拼接起来的

    最后各种错误

    试着用过把数据转换位 json 和 obj 都失败告终

    最后没有办法用原生 php foreach 去遍历数据

    成功显示数据

    我不知道是不是 laravel 对于 get 这样的自带方法获取的数据才可以用 blade 模板

    而对于其他数组是没有办法使用 blade 的

    如该有是不是有框架函数来转换数组

    我很努力的寻找 没有找到

    17 条回复    2016-07-26 13:18:05 +08:00
    silov
        1
    silov  
       2016-07-14 16:14:06 +08:00
    没看懂你的问题。。。。

    blade 和 get 有啥关系?

    get 数据不是应该在 controller 里面处理么。。。 [我是不是理解偏了
    ChenKe
        2
    ChenKe  
    OP
       2016-07-14 16:38:30 +08:00
    @silov {{$event}} 这种数据显示你应该知道吧 一般这个是 $XXX = Event::get()

    然后 return 传值
    silov
        3
    silov  
       2016-07-14 16:45:45 +08:00
    get 方法获取的是好几条记录的 Object 格式,

    Event::where('key','value')->get()->toArray()

    得到数组,然后循环数组展示字段就行了啊。。。
    ChenKe
        4
    ChenKe  
    OP
       2016-07-14 16:47:31 +08:00
    @silov 我这里有一个活动表 表里有活动类型和每一个类型活动的 id 然后根据这数据找到具体的活动 根据活动处于的状态 需要输出不同的值 而这些值都在不同的表里面 所以不存在调用一个表就可以把数据搞定
    ChenKe
        5
    ChenKe  
    OP
       2016-07-14 16:48:43 +08:00
    最终就是把所有需要的数据组合和一个二维数组 然后用原生 php 在模板遍历数据
    silov
        6
    silov  
       2016-07-14 16:53:08 +08:00
    跟多少表没关系,反正所有的数据取出来的时候格式都是一样的,都可以处理成数组,然后再怎么组装都行。。。
    qhxin
        7
    qhxin  
       2016-07-14 16:57:59 +08:00
    多表一个可以用它的 ORM ,还有一个可以用 join
    chuhemiao
        8
    chuhemiao  
       2016-07-14 17:02:02 +08:00
    应该直接贴代码
    jellybool
        9
    jellybool  
       2016-07-15 02:34:07 +08:00
    z5864703
        10
    z5864703  
       2016-07-15 12:54:13 +08:00
    blade 不是自带 foreach 么。
    你应该是格式不一致吧,把所有数据统一转换成数组。
    最好贴下代码
    AbrahamGreyson
        11
    AbrahamGreyson  
       2016-07-20 10:29:58 +08:00
    没提供任何有价值的信息。
    ChenKe
        12
    ChenKe  
    OP
       2016-07-20 10:37:12 +08:00
    @AbrahamGreyson 已经搞定了

    PHP laravel 框架里面 拥 Model 中的 get find 自带的方式去连接数据库,可以使用 blade 的方法在模板显示数据

    但是如果你的数据是自己组合的,有表数据和其他传参数据,组成的 array 类型的,

    无论转换成 json 还是 obj ,都不可以使用 blade ,

    只能用原生写法

    没有及时回复

    抱歉了 大家
    AbrahamGreyson
        13
    AbrahamGreyson  
       2016-07-20 10:41:45 +08:00
    @ChenKe 这就是不同数据类型的使用问题, 其实理应你自己理顺的。
    为了更好的兼容性,建议你在模版中以数组方式输出。 因为即使是对象基本都实现了 ArrayAccess 接口, Eloquent 支持数组语法访问。
    ChenKe
        14
    ChenKe  
    OP
       2016-07-20 10:44:51 +08:00
    @AbrahamGreyson laravel 在国内用的还是太少了,而资料都很坑爹,查手册也没有很好的解决办法,
    就是有点强迫症了,想统一写法而已。

    这个是后台,对模板没什么技术性要求,目前写的是 APP 的后台, api 不涉及前台模板,直接 json

    laravel 在这个方面还是很不错的, return 直接是 json 格式数据
    ChenKe
        15
    ChenKe  
    OP
       2016-07-21 19:03:10 +08:00
    @jellybool 网站好卡啊
    eamon666
        16
    eamon666  
       2016-07-26 10:39:28 +08:00
    以前用 laravel 开发时貌似遇到过这个问题 然后怎么解决的我忘记了。。。
    用 LARAVEL 还是要多 stackoverflow 更靠谱一些
    国内翻译的就呵呵了
    ChenKe
        17
    ChenKe  
    OP
       2016-07-26 13:18:05 +08:00
    @eamon666 其实做出效果很简单 只是想 laravel 是不是有自己的解决办法

    到现在也没有找到比较优雅的解决办法

    依旧是原生的 PHP 写发

    没有利用框架自带的 blade 模板
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3229 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 12:08 · PVG 20:08 · LAX 05:08 · JFK 08:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.