Model 扩展空间laravel activitylogs活动模型并添加新的可填充项

Model 扩展空间laravel activitylogs活动模型并添加新的可填充项,model,laravel-5.4,Model,Laravel 5.4,我正在开发Laravel 5.4应用程序,并尝试安装Spatial/Laravel activitylog v1.16旧版本,因为我不确定较新的v2.4.3是否能与5.4一起使用 我的问题是软件包说我可以使用软件包CausesActivity特性添加一个causer。我将其添加到公司模型中,因为每个模型都有一个Company_id属性,但这不起作用。 我有一家公司,有许多用户希望在创建日志时将公司id添加到表中。 我创建了一个companygactivity模型,该模型扩展了活动模型,并从包中将

我正在开发Laravel 5.4应用程序,并尝试安装Spatial/Laravel activitylog v1.16旧版本,因为我不确定较新的v2.4.3是否能与5.4一起使用

我的问题是软件包说我可以使用软件包CausesActivity特性添加一个causer。我将其添加到公司模型中,因为每个模型都有一个Company_id属性,但这不起作用。 我有一家公司,有许多用户希望在创建日志时将公司id添加到表中。 我创建了一个companygactivity模型,该模型扩展了活动模型,并从包中将company_id列添加到Activity_log表中,并将新模型添加到配置文件中

然后我试着:

添加belongsToTenant Trait没有用

use Illuminate\Database\Eloquent\Model;  
use Spatie\Activitylog\Models\Activity;  
use HipsterJazzbo\Landlord\BelongsToTenants;   
class CompanyActivityLogs extends Activity  
{  
    use BelongsToTenants;  
    protected $table = ['activity_log'];  
    public $tenantColumns = ['company_id'];  
 }    
在模型上使用$fillable并观察创建或保存以填充公司id

<?php

namespace App\Observers;  
use App\CompanyActivityLogs;  
use Auth;  
use Spatie\Activitylog\Models\Activity;  
class CompanyActivity  
{  
public function creating($model)  
{  
    $model->fill(['company_id' => Auth::user()->company_id])->save();  
}  
public function updating($model) {  
    $model->fill(['company_id' => Auth::user()->company_id])->save();  
}  
那没用,我想这是个很好的解决办法。我在observe语句中尝试将CompanyActivityLogs切换为活动父模型,但没有成功

我试着在扩展模型中添加

public static function boot()
 {
    parent::boot();
    static::creating(function($model)
    {

        $model->created_by = public static function boot()
 {
    parent::boot();
    static::creating(function($model)
    {         
        $model->created_by = Auth::user()->company_id;
        //also tried  $model->save(); here

    });      
};
最后,我尝试将其附加到父::数组

protected $fillable = ['company_id'];  
public function toArray()  
{  
    $array = parent::toArray();  
    foreach ($this->getMutatedAttributes() as $key)  
    {  
        if ( ! array_key_exists($key, $array)) {  
            $array['company_id'] = Auth::user()->company_id;  
        }  
    } 
    return $array;  
}

我尝试了很多不同的方法,认为其中一种会有所帮助

添加模型时,我没有缓存配置。BelongsToTenant适用于此问题。我打赌其他解决方案也会奏效

protected $fillable = ['company_id'];  
public function toArray()  
{  
    $array = parent::toArray();  
    foreach ($this->getMutatedAttributes() as $key)  
    {  
        if ( ! array_key_exists($key, $array)) {  
            $array['company_id'] = Auth::user()->company_id;  
        }  
    } 
    return $array;  
}