我正在将我们的一个web应用程序从CodeIgniter转换为Laravel。然而,目前我们不想将updated_at
/created_at
字段添加到我们所有的表中,因为我们有一个日志类,它已经为我们做了更深入的工作。
我知道我可以设置$时间戳=false;
在:
Vendor\laravel\framework\src\illuminate\Datebase\Eloquent\Model.php
然而,我宁愿不改变Laravel的核心文件,或者让我的每个模型都在顶部。有没有办法在其他地方禁用所有型号?
如果您使用的是5.5.x:
const UPDATED_AT = null;
对于created_at字段,您可以使用:
const CREATED_AT = null;
确保您使用的是最新版本。(这在Laravel 5.5.0中被打破,并在5.5.5中再次修复)。
只需在模型中放置此行:
public$timestamps=false
就这样!
例子:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
public $timestamps = false;
//
}
要禁用一个操作的时间戳(例如,在控制器中):
$post->content = 'Your content';
$post->timestamps = false; // Will not modify the timestamps on save
$post->save();
要禁用所有模型的时间戳,请创建一个新的
BaseModel
文件:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class BaseModel extends Model
{
public $timestamps = false;
//
}
然后使用
BaseModel
扩展每个模型,如下所示:
<?php
namespace App;
class Post extends BaseModel
{
//
}
您要么必须声明public$timestamps=false
更新:请注意,在LaravelV3之后,pivot表中不再需要时间戳。
更新:您还可以通过删除
$table来禁用时间戳-
始终使用Laravel Elotent而不是原始SQL有什么好处吗? 我有一个习惯,首先在phpMyAdmin中编写SQL来检查关系,然后将其翻译成雄辩的ORM。 有时,翻译成雄辩的ORM是痛苦和耗时的,尤其是从长而复杂的SQL查询进行翻译。与使用雄辩的ORM相比,我能够用SQL快速编写。
我是新来的拉威尔,我曾在codeigniter工作。我对雄辩的ORM概念着迷。我有一个关于雄辩能力的一般性问题。ORM的功能是什么,我的意思是我们可以获得相关表行的级别。如果你看“http://four.laravel.com/docs/eloquent#relationships 一对一 一对多 多对多 多态关系 在我看来,“一对一”意味着一级。表1表2
在有说服力的ORM上,是否有一种较短的方法在Laravel中插入数据? 目前我正在这样做: 就像你看到的,所有的列都像属性一样命名。 我知道您可以将对象与all()函数和fetch()一起使用。但是我从另一个对象(soap服务器)获取数据。 有没有办法转换这个?也许在模型上?
我在使用laravel雄辩的ORM时遇到了一个问题。 基本上,我正在获取与用户相关的帖子,以及他的评论,但是,我正在尝试集成某种分页(我一次只想取5个帖子)。 而使用跳过方法,我总是得到以下laravel错误: 方法skip不存在。 这是我实际使用的代码片段。 有人能给我任何帮助吗? 帐户模型检索与用户相关的帖子模型(关系),但是,我想一次只收到5个帖子,用于基于ajax的请求。
我有以下三个表格: 所以基本上这种关系就像: 用户有许多项目 项目属性到客户端 我的问题是: 如何使用eloquent获得用户的所有客户端? 似乎我不能用户hasManyPass方法,因为在客户端表中没有project_id。 因此,我希望达到的目标是:
嘿,伙计们,我是拉威尔的新朋友。我有这张桌子 我如何能够获取每个科目的is_correct列计数? 谢谢伙计们!