php - 从 SELECT * FROM users WHERE url = "pretty url"开始,到使用 Lithium Framework 显示数据库中的 1 行

标签 php mysql sql url lithium

嗨,我是 php 和 mysql 的新手,直接开始使用 Lithium 框架......我知道,这是个坏主意。

但基本上我的问题是,我该如何去;

$users = \app\models\Users::findByUrl($this->request->query['url']);
return array(
  'users' => $users,
 );

在我的UsersController中,根据我的url中的查询字符串实际回显我的users/index.php.html页面中的1个特定数据行?

我想要的结构是 localhost/users/"url","url"是我的 MySQL 数据库中的一个值,在我的 Users 表中标记为 "url"。例如本地主机/用户/鲍勃。 “Bob”是“url”值。

我的 users/index.php.html 页面使用 foreach ($users as $user) 来回显这样的信息;

<?=$user->firstname ?>

障碍和困惑:

当我使用时;

$users = \app\models\Users::find('all');
return array(
 'users' => $users,
);

在我的 UsersController 中,users/index.php.html 页面检索了我数据库中的所有用户。

内容显示正确,但我只需要点击用户的数据,所以这是我开始使用的时候; $users = \app\models\Users::findByUrl($this->request->query['url']);

当链接到用户页面时,我就是这样做的;

<?php if( $user->avatar ):?> 
 <a href="/users/<?=$user->url?>">
      <img class="img-responsive" src="/img/users/<?=$user->avatar?>" />  
 </a> 
<?php else: ?>

不确定我是否需要向我的 Controller 添加条件,向我的路由器添加一些内容,更改我的 htaccess,或者使用参数做一些事情......请帮助,任何方向将不胜感激。

最佳答案

查找器默认返回所有内容。如果您想要单个对象,请执行以下操作:

Users::findFirstByUrl($this->request->query['url'])

...这是缩写:

Users::first(['conditions' => ['url' => $this->request->query['url']]])Users::find('first', ['conditions' => ['url' => $this->request->query['url']]])

关于php - 从 SELECT * FROM users WHERE url = "pretty url"开始,到使用 Lithium Framework 显示数据库中的 1 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23919951/

相关文章:

php - 处理参差不齐的(移动)连接和 API

用于网站的 PHP 和 MYSQL 登录系统,卡在用户创建上

sql - 如何与其他过程的调用进行外部连接

php - yii 通过检查两个条件从表中获取结果

php - Laravel 在用户模型中通过 id 获取用户并将它们存储在数组中

php - 日期值未在 MySQL 数据库 Prestashop 中插入或更新

php - 我不知道如何在 SQL 中使用 $where 来处理选定的类别

MySQL存储过程响应错误

php - LAMP 堆栈在一个 linux 服务器上使用 apache 和 php,在不同的 linux 服务器上使用 mysql

sql - 我只需要找到每个城市薪酬最高的员工