ExplainRepository.php 1.78 KB
<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/1/30
 * Time: 17:54
 */

namespace App\Repositories\Backend\Explain;

use App\Modules\Models\Explain\Explain;
use App\Modules\Repositories\Explain\BaseExplainRepository;
use App\Events\Backend\Access\Explain\ExplainCreated;
use App\Events\Backend\Access\Explain\ExplainUpdated;
use Illuminate\Support\Facades\DB;

class ExplainRepository    extends BaseExplainRepository
{

    public function getForDataTable()
    {
        return $this->query()->get();
    }

    public function create($input){
        $data = $input['data'];

        $explain = $this->createUserStub($data);

        DB::transaction(function () use ($explain, $data) {
            if ($explain->save()) {
                //Attach new roles
                event(new ExplainCreated($explain));

                return true;
            }

            throw new GeneralException(trans('exceptions.backend.explain.create_error'));
        });


    }


    public function getinfo(){
        return   $this->query()->select('explain.id','name','explain.created_at','explain.updated_at','spot.spotname')->leftjoin('spot','explain.spot_id','=','spot.id')->get();

    }
    protected function createUserStub($input)
    {
        $explain = self::MODEL;
        $explain = new $explain;
        $explain->spot_id = $input['spot_id'];
        $explain->name = $input['spotname'];
        return $explain;
    }


    public function update(Explain $explain, $input)
    {


        DB::transaction(function () use ($explain, $input) {
            if ($explain->update($input)) {
                event(new ExplainUpdated($explain));

                return true;
            }

            throw new GeneralException(trans('exceptions.backend.explain.update_error'));
        });
    }

}