这是路线
Route::get('test', array('before' => 'auth', 'as' => 'asd', function()
{
$userid = '2';
$result = Messages::whereIn('from', array($userid, Auth::user()->id))
->whereIn('to', array($userid, Auth::user()->id))
->orderBy('sended', 'desc')
->join('ucpm_users', 'ucpm_messages.from', '=', 'ucpm_users.id')->join('metadata_personas', 'ucpm_users.persona', '=', 'metadata_personas.id')
->select('from','ucpm_users.username','metadata_personas.first_name','metadata_personas.last_name','message','ucpm_messages.created_at','ucpm_messages.updated_at','ucpm_messages.readed_at')
->get();
$result->each(function($message)
{
$message->touch();
});
print_r($result);
}));
执行时,它会打印条目对象集合,例如:
[attributes:protected] => Array
(
[from] => 2
[username] => criser
[first_name] => Cristian
[last_name] => Leal
[message] => asdqweasd
[created_at] => 2013-06-07 20:11:31
[updated_at] => 2013-06-07 24:31:52
[readed_at] => 1986-09-08 00:00:00
)
[original:protected] => Array
(
[from] => 2
[username] => criser
[first_name] => Cristian
[last_name] => Leal
[message] => asdqweasd
[created_at] => 2013-06-07 20:11:31
[updated_at] => 2013-06-07 24:31:52
[readed_at] => 1986-09-08 00:00:00
)
没有任何错误响应或任何东西。并且 Attributes 和 Original 数组都使用当前时间戳更改了 updated_at 字段。没关系,这就是我想要的工作方式,但是.. 他们不会对数据库进行任何更改。updated_at 字段或任何内容没有变化。它让我感到困惑,为什么模型会发生变化并向我展示了变化,但没有考虑到这些变化。
另外,如果我更改“$message->touch()”;带有“$message->readed_at = '09-08-1986'; $message->save();” 结果是一样的:感觉就像工作,但在数据库中没有进行任何更改。
路线(不是这条路线,这只是一个测试),从当前登录用户与另一个用户恢复所有消息并打印一个 json 响应。我的想法是,当它加载时,如果 created_at 日期与 updated_at 相同,则消息是未读的,因此我想更改它(或使用 readed_at 字段,无论如何......)。
对不起我的英语不好。