【问题标题】:How select a single row october cms如何选择单行十月cms
【发布时间】:2019-10-15 11:52:02
【问题描述】:

10月cms如何选择单行?

一个简单的事情怎么会这么复杂?

我认为这将是帮助我们而不是打扰像

这样简单的事情
SELECT * FROM `engegraph_forms_membros` 

这就像在没有圣经的情况下与恶魔作战,天哪,为什么? 为什么让新手难以查询?

【问题讨论】:

  • 要选择单行,您需要使用具有适当条件的 where 语句。
  • 你能举个例子吗?
  • 我想在我的查询中显示所有行并且我想用 then 更新 mydiv,但是直到现在我还没有成功,我不知道如何做到这一点,我使用了我所有的新手知识
  • 您的评论“我想显示所有行”与您的问题“我想选择一行”相矛盾。
  • 对不起,我没有名字的英国马,我想说,我想显示一行内部,我似乎不是显示单行的所有列值例如:我有 ID 1,那个 id 有:姓名 - 年龄 - 电子邮件 - 在这个 cms 中的电话 我无法编写一个查询来显示所有这些,比如简单的 sql select * from (table) where id = 1 你明白了吗?

标签: mysql sql octobercms


【解决方案1】:

我知道你的母语不是英语,但你应该看these videos的每一个。

记录是否属于插件中的模型?以下是有关如何work with models 的文档。

您制作一个插件,设置创建模型的数据库,然后制作要在您的 CMS 页面中运行的组件。

在component.php 文件中你可以有这样的东西: 这里我用use Author\Plugin\Models\Agreements; 调用模型类Agreements。这允许我使用 laravel 的 eloquent 收集服务运行一个函数/方法来检索所有协议或一个协议。

假设我们有记录的 ID。好吧,我们可以使用::find::where 调用协议模型。你会注意到我有两个基本上做同样事情的函数。 ::find 使用模型的主键(在我的例子中是 id),并将返回一个单数记录。 *注意find可以取一个数组并返回一个记录集合;喜欢::where。我们将使用::where 查找ID。 *注意::where 总是返回一个集合,这就是我包含->first() 的原因。

<?php namespace Author\Plugin\Components;

use Session;
use Input;
use Crypt;
use Db;
use Redirect;
use Illuminate\Contracts\Encryption\DecryptException;
use October\Rain\Support\Collection;

use Author\Plugin\Models\Agreements;

class GetAgreement extends \Cms\Classes\ComponentBase
{
    public function componentDetails()
    {
        return [
            'name' => 'Get one agreement',
            'description' => 'Get an agreement to change or delete it'
        ];
    }

    public function onRun() {
        $this->page['agreement'] = $this->getWithFindAgreement;
    }

    public function getWithFindAgreement() {
        $id = 1;
        $agreement = Agreements::find($id);
        return $agreement;
    }

    public function getWithWhereAgreement() {
        $id = 1;
        $agreement = Agreements::where($id)->first();
        return $agreement;
    }
}

如果由于某种原因您没有使用模型,这里是work with Databases 的文档。您必须注册 use Db; 外观。

这里调用你要的表,用::where查询。 *注意再次使用-&gt;first()

$users = Db::table('users')->get();
$user = $users->where('id', 1)->first();

【讨论】:

    【解决方案2】:

    选择单行有两种简单的方法:

    这将为您提供所选记录集中的“第一条”记录。

    SELECT top 1 * FROM `engegraph_forms_membros` 
    

    这将选择所有满足谓词要求的记录 的值等于

     SELECT * FROM `engegraph_forms_membros` where <columnname>=<value>
    

    如果您选择一个记录,其中多个值满足该要求,那么您可以(随机)通过组合解决方案来选择一个......

     SELECT top 1 * FROM `engegraph_forms_membros` where <columnname>=<value>
    

    但请注意,如果没有 ORDER BY 子句,底层数据是无序并且容易发生无法控制的变化,这就是为什么大多数人(包括你的老板)会发现使用 'Top'不适合实际使用。

    【讨论】:

    • 我现在想要,选择并显示所有内容,只是为了了解 cms 的工作原理。我想获取 row 的值并更新 mypartial 以显示在 myDiv 上
    • 我尝试使用 select top 1,但在 MARIA BD 上出现错误
    • SELECT * FROM engegraph_forms_membros WHERE id = 4 如何在 octobercms 上执行此操作?我想获取该 id 行的所有列值。
    猜你喜欢
    • 2016-05-14
    • 1970-01-01
    • 2019-07-21
    • 1970-01-01
    • 2016-06-07
    • 1970-01-01
    • 2023-03-18
    • 2019-01-13
    • 1970-01-01
    相关资源
    最近更新 更多