【发布时间】:2017-10-13 17:27:21
【问题描述】:
我想在我的模型中创建审计跟踪。我已经通过 Composer 安装了 owen-it/laravel-auditing 包。我的问题是如何在我的模型或控制器中实现它。请在下面查看我的控制器和模型代码。谢谢
我的控制器:
<?php
namespace App\Http\Controllers;
use App\Events\Test;
use App\Letter;
use App\Notifications\LetterNotification;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Notification;
use Illuminate\Support\Facades\Validator;
class LetterController extends Controller
{
public function viewLetter()
{
return view('welcome');
}
/**
* Saves email into database
*
* @param array $data
* @return Letter
*/
protected function create(array $data)
{
$letter = Letter::create([
'email' => $data['email']
]);
$this->letterNotify($letter);
return $letter;
}
/**
* Validates email
*/
public function createLetter(Request $request)
{
$this->validate($request,[
'email' => 'required|email|max:255|unique:letters'
],[
'email.required' => 'Email is required.',
'email.unique' => 'Already registered.',
'email.email' => 'Please put a valid Email address'
]);
$this->create($request->all());
return redirect('/')->with('info','You are now registered.');
}
protected function letterNotify($letter)
{`enter code here`
Notification::send($letter, new LetterNotification($letter));
}
}
对于我的模型:
<?php
namespace App;
use OwenIt\Auditing\Auditable;
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Notifications\Notifiable;
class Letter extends Model implements AuditableContract
{
use Notifiable;
use Auditable;
protected $fillable = ['email'];
protected $table = 'letters';
}
【问题讨论】:
-
您提交的代码看起来不错。请解释什么不起作用,或者您期望看到/发生什么。 documentation 应该有你需要的一切。
-
@QuetzyGarcia 只是想问一下说的 laravel-auditing 包是否可以应用在默认包 'Auth' 中?
-
您的问题不清楚。您想知道user resolver 是否可以使用其他包而不是
Auth(例如Sentinel)? -
@QuetzyGarcia 我指的是登录,因为我使用的是“Auth”。我对那个 laravel-auditing 包的理解是,它不记录查看或登录。它只记录一些数据更改或注销,对吧?
-
包审计数据库操作,所以如果你想审计登录/注销,每次发生时你都必须在数据库中创建一条记录。
标签: php laravel model laravel-5.4 audit