我有一个使用本机PHP编写的旧应用程序。现在我正在尝试使用Laravel 4实现新功能......我迷失了...... 我首先要做的是将这个select语句的结果放到页面上:
$sql = "SELECT item.item_id, reg_number, serial_1, serial_2, serial_3, item_type, item_material, item_loc, addit_info.*
FROM items
JOIN addit_info on items.item_id = addit_info.item_id
WHERE items.status = 's'
ORDER BY status_changed DESC LIMIT 0 , 100;";
表的架构是:
CREATE TABLE IF NOT EXISTS
项(
ITEM_ID int(10) unsigned NOT NULL AUTO_INCREMENT,
reg_number char(9) COLLATE utf8_unicode_ci NOT NULL,
reg_type char(1) COLLATE utf8_unicode_ci NOT NULL,
make_id tinyint(3) unsigned NOT NULL,
模型varchar(20) COLLATE utf8_unicode_ci NOT NULL,
main_color varchar(20) COLLATE utf8_unicode_ci NOT NULL,
other_color varchar(20) COLLATE utf8_unicode_ci NOT NULL,
serial_1 varchar(25) COLLATE utf8_unicode_ci NOT NULL,
serial_2 varchar(25) COLLATE utf8_unicode_ci NOT NULL,
serial_3 varchar(25) COLLATE utf8_unicode_ci NOT NULL,
ITEM_TYPE char(1) COLLATE utf8_unicode_ci NOT NULL,
item_material char(1) COLLATE utf8_unicode_ci NOT NULL,
状态char(1) COLLATE utf8_unicode_ci NOT NULL,
status_changed timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
价格{ {1}}说明float(6,2) unsigned NOT NULL,
item_loc varchar(255) COLLATE utf8_unicode_ci NOT NULL,
item_id varchar(15) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (
reg_number ),
UNIQUE KEY
reg_number (
;
CREATE TABLE IF NOT NOT EXISTS ) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=476
(
addit_info
int(10)unsigned NOT NULL,
item_id
日期非空,
event_date1
varchar(250)COLLATE utf8_unicode_ci NOT NULL,
event_from
varchar(255)COLLATE utf8_unicode_ci NOT NULL,
more_info
日期非空,
PRIMARY KEY(event_date2
,item_id
)
)ENGINE = MyISAM DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci;
我不知道我的模型应该是什么样的。我想我将无法使用Eloquent功能,而是必须使用查询构建器编写查询。但是,我仍然不知道在哪里提出我的疑问。它应该在一个处理我想要使用的所有查询的模型中吗?
答案 0 :(得分:4)
你好像在同时问两件事,但我会专注于标题“如何使用Laravel模型访问现有数据库表?”中的问题。
我很确定你可以在你的旧数据库结构中使用Eloquent。在这种情况下,有关Eloquent的三个重要事项:
id
列作为主键。需要更改为item_id
。$timestamps
默认启用,这意味着它会尝试查找created_at
和updated_at
列。我们需要禁用它。所以你需要覆盖上面的#2和#3以使你的Eloquent模型有效,试试这个:
<强>模型/ Item.php:强>
class Item extends Eloquent
{
protected $table = 'items';
protected $primaryKey = 'item_id';
public $timestamps = false;
// ...
}
关于您的第二个(隐藏的问题),您应该能够查找Laravel文档,以便轻松了解如何joins或relationship。