如何从Laravel 5.4中的VentureCraft / revisionable加载和显示修订表中的数据?

时间:2017-10-12 05:23:26

标签: laravel-5 revisionable

我的路线

Route :: get(' news-logs',' Backend \ ChangeLog \ ChangeLogController @ changeLogNews') - > name(' change-log-news' );

我的模特

    <?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;

class News extends Model
{
    protected $table = 'news';

    use \Venturecraft\Revisionable\RevisionableTrait;
    protected $revisionCreationsEnabled = true;
    protected $revisionEnabled = true;

    public static function boot()
    {
        parent::boot();
    }

    public function revisionHistory(){
        $news = News::all();
        $history = $news->revisionHistory;
    }


    public function getRouteKeyName()
    {
        return 'slug';
    }

    public function months($year) {
        $queryResult = DB::table('news')->select(DB::raw('MONTH(order_date) as month'), DB::raw('YEAR(order_date) as year'))->where(DB::raw('YEAR(order_date)'), $year)->orderBy(DB::raw('MONTH(order_date)'))->get();
        $months = collect($queryResult)->unique('month');
        return $months;
    }
}

我的控制器

    <?php

namespace App\Http\Controllers\Backend\ChangeLog;

use App\Models\News;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class ChangeLogController extends Controller
{
    public function changeLogNews(){
        $news = News::all();
        $history = $news->revisionHistory;
        dd($history);
        return view('backend.change-log.history',compact('history'));
    }
}

我的观点

    @foreach($history->revisionHistory as $log )
         <li>
{{ $log->userResponsible()->name }} changed {{ $log->fieldName() }} from {{ $log->oldValue() }} to {{ $log->newValue() }}</li>
    @endforeach

现在,当我加载页面时,它说 - &#34; Property [revisionHistory]在此集合实例上不存在&#34;。我想从你身边得到任何帮助。 谢谢

1 个答案:

答案 0 :(得分:0)

$history没有revisionHistory属性。 $history$news->revisionHistory的结果。