如何将原始mysql转换为laravel

我想删除我的帐户

我需要你的帮助。我试图将这个mysql转换为laravel,但是我将得到“无法在非对象上调用xy函数”的信息。

这是mysql查询,它在mysql上运行,没有任何错误:

select k.id, users.email, problemsets.name, k.created_at, k.state as state, k.id as link
FROM ( SELECT * FROM  `user_practicesets` AS b ORDER BY b.id DESC ) AS k

 left join `users` on `users`.`id` = k.`id_user`
 left join `practicesets` on `practicesets`.`id` = k.`id_practiceset`
 left join `problemsets` on `problemsets`.`practiceset_id` = `practicesets`.`id`
GROUP BY k.id_user, k.id_practiceset
 order by k.`id_practiceset`

这是我的转变:

 $items = DB::select(
DB::raw('select k.id, users.email, problemsets.name, k.created_at, k.state as state, k.id as link '.
'FROM ( SELECT * FROM  `user_practicesets` AS b ORDER BY b.id DESC ) AS k '.
'left join `users` on `users`.`id` = k.`id_user` '.
'left join `practicesets` on `practicesets`.`id` = k.`id_practiceset` '.
'left join `problemsets` on `problemsets`.`practiceset_id` = `practicesets`.`id` '.
'GROUP BY k.id_user, k.id_practiceset '.
'order by k.`id_practiceset`'
))->get();


            return Datatables::of($items)
                ->edit_column('state', '{{ $state == 1 ? "<span class=\"text-success glyphicon glyphicon-ok\"></span>" : "<span class=\" text-danger glyphicon glyphicon-remove\"></span>" }}')
                ->edit_column('link', '<button data-id="{{$id}}" type="button" class="view-up btn btn-sm btn-primary">Megtekint</button>')
                ->make();

不幸的是我没有任何想法。

$items具有以下数据:

Array (
 [0] => stdClass Object (
   [id] => 25 
   [email] => [email protected] 
   [name] => Test name 
   [created_at] => 2015-04-08 17:12:31
   [state] => 0 
   [link] => 25 
) )
罗伯特

首先,我对数据表的经验是,您不应使用->get(),而应该将QueryBuilder对象传递给,而不是Collection

其次,与“正常”订单相比,您的FROM子句与订单的区别是什么

FROM `user_practicesets`

如果您想要最高的ID,只需在选择中使用max(id),我想它将使您的生活更轻松。不确定您的期望是什么,因此您可能应该在这里和那里进行调整。

没关系,您可能最终想要得到类似(未经测试)的内容:

$items = DB::table('user_practicesets')::with('users')
    ->with('practiceSets')
    ->with('problemSets')
    ->select(
        DB::raw('MAX(user_practicesets.id) as link'),
        'users.email',
        'problemsets.name',
        'user_practicesets.created_at',
        'user_practicesets.state'
    )
    ->groupBy('user_practicesets.id_user', 'user_practicesets.id_practiceset')
    ->orderBy('user_practicesets.id_practiceset');

但是为此,您必须进行关系设置。您也可以自己添加联接,方法是使用(替换为)(急切加载)->leftJoin()并自己进行。

一件事,如果您希望Laravel(和Eloquent)使事情变得简单,请在创建表和字段时遵循命名约定。您同时使用id_practicesetpracticeset_id,这是a)令人困惑的,而b)id_practiceset不会自动解决。您当然可以在关系中设置外键,但这实际上是不必要的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将原始MySQL转换为Laravel

来自分类Dev

Laravel 4.2:如何将原始查询转换为口才

来自分类Dev

Laravel - 如何将 MySQL 查询转换为 Laravel Eloquent

来自分类Dev

Laravel 4:如何将这种复杂的原始地理SQL查询转换为使用Eloquent?

来自分类Dev

如何将原始javascript对象转换为python字典?

来自分类Dev

如何将原始代码转换为函数示例

来自分类Dev

如何将图像原始数据转换为图像

来自分类Dev

如何将mySQL转换为PDO

来自分类Dev

将原始查询转换为雄辩的laravel

来自分类Dev

如何将mysql查询转换为laravel查询生成器

来自分类Dev

如何将转换为字符串值的[[String]]转换回原始类型[[String]]?

来自分类Dev

如何将查询转换为Laravel雄辩的ORM

来自分类Dev

如何将SQL查询转换为雄辩的Laravel

来自分类Dev

如何将数组转换为dd($ variable)(laravel)的结果?

来自分类Dev

Laravel - 如何将 Stdclass 对象转换为数组

来自分类Dev

如何将 Laravel-5.6 转换为 .exe

来自分类Dev

如何将此MySQL查询转换为Laravel?

来自分类Dev

如何将Á转换为A

来自分类Dev

如何将Á转换为A

来自分类Dev

如何将Postgres SQL转换为MySQL查询

来自分类Dev

MySQL:如何将秒转换为mm:ss格式?

来自分类Dev

如何将MySQL语句转换为数值?

来自分类Dev

如何将mysql查询转换为zend查询?

来自分类Dev

如何将PHP循环转换为MySQL查询?

来自分类Dev

如何将TSQL查询转换为MYSQL查询?

来自分类Dev

如何将MySQL时间戳转换为Javascript日期?

来自分类Dev

如何将mysql查询转换为jpa命名查询

来自分类Dev

如何将MSSQL CTE查询转换为MySQL 5.7?

来自分类Dev

如何将mySQL JSON列转换为javascript数组?

Related 相关文章

热门标签

归档