Php Laravel-5每个对数表的单独模型
我目前正在用Php Laravel-5每个对数表的单独模型,php,mysql,eloquent,laravel-5,Php,Mysql,Eloquent,Laravel 5,我目前正在用Laravel 5开发一个应用程序,我的主要表格是用户,供应商,制造商等 每个表都有一个单独的用户日志,供应商日志日志表。这些日志表的目的是审查为单个实体执行的操作(例如:属于特定制造商的日志以及过去对该制造商所做的更改等) 我计划使用Eloquent,并为每个主要表格生成了Eloquent模型 我的问题:我应该为每个日志表生成单独的雄辩的模型,还是在主表的模型中编写一个类似user\u log()的方法来编写日志 p.S:使用我的应用程序的用户数量很少,因此将日志写入数据库比文件日
Laravel 5
开发一个应用程序,我的主要表格是用户
,供应商
,制造商
等
每个表都有一个单独的用户日志
,供应商日志
日志表。这些日志表的目的是审查为单个实体执行的操作(例如:属于特定制造商的日志以及过去对该制造商所做的更改等)
我计划使用Eloquent
,并为每个主要表格生成了Eloquent
模型
我的问题:我应该为每个日志表生成单独的雄辩的
模型,还是在主表的模型中编写一个类似user\u log()
的方法来编写日志
p.S:使用我的应用程序的用户数量很少,因此将日志写入数据库比文件日志更可取。我只使用日志
表,因为日志应该是简单/通用/直接的
以下是我将使用的日志
表列:
- 身份证
- 用户id(执行我们正在记录的操作的用户)
- 操作(所执行操作的描述:
删除的用户
,更新的供应商
,创建的制造商
,等等)
- url(用于执行操作的url)
- ip(用户的ip地址)
- 时间戳
考虑到这一点,您将为每种可记录表类型创建一个标准透视表,在您的情况下,这些透视表将是log\u制造商
、log\u供应商
和log\u用户
(我在这里遵循Laravel表命名约定,但如果您愿意,请继续使用其他名称)
通过这种方式,您可以通过任何类型的日志进行全局搜索:
$logs = Log::where('user_id', 1)->get(); // get all logs of User 1
按特定日志类型(用户、供应商、制造商等):
或者通过日志过滤所有特定型号:
$manufacturers = Manufacturer::whereHas('logs', function ($query)
{
$query->where('user_id', 1);
})
->get(); // get all Manufacturers that have been manipulated by User 1
为了在日志
表上创建一个新条目,我将使用,以便在每次创建
、更新
或删除
操作中,它都会透明地处理创建。您的问题不清楚。你能解释一下吗?我不确定这里有一个“正确”的答案。我们最希望的是找到一种比另一种更适合您的情况的方法,但这两种方法都是可以接受的。结果将是一个固执己见的答案,这对于StackOverflow来说通常是离题的。@Nomanurehman:我为不清楚而道歉。我的问题是,我应该为user\u log
表创建一个新的eloquent模型
,还是只使用user
模型并编写一个函数来执行日志操作。@GeorgeCummins:所以我只编写一个类似saveLog()的方法
并使用一些DB::
来编写我的日志,因为这比创建一个新的有说服力的模型更容易执行。您还可以在主要模型和日志模型之间使用a。是的,这可能是另一种方法:)
$manufacturers = Manufacturer::whereHas('logs', function ($query)
{
$query->where('user_id', 1);
})
->get(); // get all Manufacturers that have been manipulated by User 1