【问题标题】:Get results based on the first letter of the field data in CakePHPCakePHP中根据字段数据的首字母获取结果
【发布时间】:2011-05-19 17:27:54
【问题描述】:

我正在尝试创建一个页面,用户可以在其中搜索特定模型的所有记录,在我的例子中是专辑。在我使用的视图中:

    for ($i = 65; $i < 90; $i++) { 
        echo $html->link(chr($i), array('action' => 'letter_find', chr($i))) , ' - '; 
    }

打印出字母表中的每个字母,后跟一个“-”(谁能告诉我如何在最后一个字母后面不加“-”?)。用户单击一个字母,然后将相应的字母作为变量传递给 letter_find 操作。

这就是我卡住的地方。我不完全确定如何找到以所选字母开头的所有专辑。就像我在标题中所说的那样,我是一个完全的neub。这可能是一件很简单的事情?

提前感谢:)

【问题讨论】:

  • 将连字符移到下一行并将其包装在 if 块中:if($i != 89) echo " - ";

标签: php sql regex cakephp alphabetical


【解决方案1】:
foreach ( range( 'a', 'z' ) as $l ) {
    $links[] = $html->link($l, array('action' => 'letter_find', $l));
}

echo implode( ' - ', $links );

【讨论】:

    【解决方案2】:

    'Model.field LIKE' 。 $信。 '%' 是您在 find 中添加的条件

    编辑

    你可能也喜欢这个

    查找可用的字母 - https://github.com/infinitas/infinitas/blob/beta/core/libs/models/behaviors/infinitas.php#L525

    显示可用字母列表 - https://github.com/infinitas/infinitas/blob/beta/core/filter/views/helpers/filter.php#L140

    【讨论】:

      【解决方案3】:

      我认为应该这样做,它会将 $results 作为数组返回:

      $results = $this->model->find('all',array('conditions'=>array('model.field LIKE'=>$letter.'%')));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-12-28
        • 1970-01-01
        • 2018-04-12
        • 1970-01-01
        • 2020-11-30
        • 1970-01-01
        • 2011-07-05
        相关资源
        最近更新 更多