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

求助 解读 laravel class 类实现方式,

  •  
  •   gyinbj · 2020-03-16 16:47:54 +08:00 · 2606 次点击
    这是一个创建于 1494 天前的主题,其中的信息可能已经有所发展或是发生改变。

    latavel 自带实现方式

    controllers 源码

    $Row = GoodsList::select()->orderByRaw()...

    $perpPage = $this->page;

    $Row = $Row->paginate($perpPage);

    $Row 返回为对象格式。

    'perpPages' => $Row,

    view 源码

    共 {{ $perpPages->total() }} 个项目

    $perpPages->url(1) 可进行动态加载

    ffffffffffffffffffffffffffffffffffffffffffffffffffffffff

    怎样写 class,可以在 view 层进行 动态加载 class 数据???

    目前自己写的 facades

    $this->Mssql = app('mssql',['sa']);

    $Row = $this->Mssql->appends(app('request')->all());

    $Row = $this->Mssql->paginate(5);

    但是自己源码返回为 array 数组。

    并且没法再 VIEW 层进行动态加载源码。

    例如:$perpPages->url(1)

    希望$Row 返回 class, 并且可在 View 层可动态加载。

    8 条回复    2020-03-17 15:02:18 +08:00
    harde
        1
    harde  
       2020-03-16 16:52:02 +08:00
    讲真,没看懂说的是啥
    b821025551b
        2
    b821025551b  
       2020-03-16 16:55:22 +08:00
    每个字都认识,但是拼在一起完全不知道说的是什么。
    xnode
        3
    xnode  
       2020-03-16 17:09:04 +08:00   ❤️ 1
    哦 我有点明白了,只是不知道你说的和我理解的一不一样,
    你可以自己封装一个 model 返回的就是 对象
    SuperAllen
        4
    SuperAllen  
       2020-03-16 17:09:54 +08:00
    虽然看起来很困难,只好猜你是不是要把对象或者变量带到 blade 模版中展示

    变量传递
    $list = ["test"=>666];
    return view("admin.order.recharge", compact("list");

    使用
    {{ $list["test"] }}
    输出 666
    gyinbj
        5
    gyinbj  
    OP
       2020-03-16 17:58:33 +08:00
    @xnode 你好像我的知心爱人, 一个眼神就懂。 剩下的就是告诉我一下 model 怎么写。。。
    pota
        6
    pota  
       2020-03-16 18:00:29 +08:00
    Model 返回的集合可以直接遍历的啊
    xnode
        7
    xnode  
       2020-03-17 08:56:21 +08:00
    @gyinbj 有两种方法 一种是用 model 的方式 继承 model 但是指定 数据库配置,第二种是写一个 Service 实例化 指定 DB 连接
    shellus
        8
    shellus  
       2020-03-17 15:02:18 +08:00
    非常简单,你解析出模板变量后,也就是 {{$user->posts()->count()}} 这一段
    $str = "$user->posts()->count()";
    不用去解析它的每一段了,直接 $value = exec($str)
    然后将 $value 替换到编译后的模板上就行。

    事实上,laravel 也是类似的做法,不过它是将 blade 模板编译成 php 模板,也就是这样
    xxx.php:
    <?=$user->posts()->count();?>
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5279 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 06:58 · PVG 14:58 · LAX 23:58 · JFK 02:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.