Created
October 29, 2015 10:49
-
-
Save trovster/f937301defe3d826855d to your computer and use it in GitHub Desktop.
Deposit controller, model and request using Laravel 5.1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace App\Http\Controllers\Admin; | |
use Illuminate\Http\Request; | |
use App\Http\Controllers\AdminController as Controller; | |
use App\Models\Deposit; | |
use App\Http\Requests\DepositRequest; | |
class DepositController extends Controller | |
{ | |
/** | |
* Deposit model being used. | |
*/ | |
protected $deposit; | |
/** | |
* Create a new controller instance. | |
* | |
* @return void | |
*/ | |
public function __construct(Deposit $deposit) | |
{ | |
$this->deposit = $deposit; | |
} | |
/** | |
* Display a listing of the resource. | |
* | |
* @param Illuminate\Http\Request $request | |
* @return \Illuminate\Http\Response | |
*/ | |
public function index(Request $request) | |
{ | |
if($request->user()->cannot('deposit.index')) { | |
abort(403, 'You are not allowed to view deposits.'); | |
} | |
return response()->view('admin/deposit/index', [ | |
'deposits' => $this->deposit->all() | |
]); | |
} | |
/** | |
* Show the form for creating a new resource. | |
* | |
* @param Illuminate\Http\Request $request | |
* @return \Illuminate\Http\Response | |
*/ | |
public function create(Request $request) | |
{ | |
if($request->user()->cannot('deposit.create')) { | |
abort(403, 'You are not allowed to create deposits.'); | |
} | |
return response()->view('admin/deposit/create'); | |
} | |
/** | |
* Store a newly created resource in storage. | |
* | |
* @param App\Http\Requests\DepositRequest $request | |
* @return \Illuminate\Http\Response | |
*/ | |
public function store(DepositRequest $request) | |
{ | |
if($request->user()->cannot('deposit.create')) { | |
abort(403); | |
} | |
$this->deposit->create($request->all()); | |
return redirect()->route('admin::admin.deposit.index')->with('message', 'A new deposit has been successfully created.')->with('success', true); | |
} | |
/** | |
* Display the specified resource. | |
* | |
* @param Illuminate\Http\Request $request | |
* @param App\Model\Deposit\Deposit $deposit | |
* @return \Illuminate\Http\Response | |
*/ | |
public function show(Request $request, Deposit $deposit) | |
{ | |
if($request->user()->cannot('deposit.show', [$deposit])) { | |
abort(403, 'You are not allowed to view this deposit.'); | |
} | |
return response()->view('admin/deposit/show', [ | |
'deposit' => $deposit | |
]); | |
} | |
/** | |
* Show the form for editing the specified resource. | |
* | |
* @param Illuminate\Http\Request $request | |
* @param App\Model\Deposit\Deposit $deposit | |
* @return \Illuminate\Http\Response | |
*/ | |
public function edit(Request $request, Deposit $deposit) | |
{ | |
if($request->user()->cannot('deposit.edit', [$deposit])) { | |
abort(403, 'You are not allowed to edit this deposit.'); | |
} | |
return response()->view('admin/deposit/edit', [ | |
'roles' => DepositRole::lists('role', 'id'), | |
'deposit' => $deposit | |
]); | |
} | |
/** | |
* Update the specified resource in storage. | |
* | |
* @param App\Http\Requests\DepositRequest $request | |
* @param App\Model\Deposit\Deposit $deposit | |
* @return \Illuminate\Http\Response | |
*/ | |
public function update(DepositRequest $request, Deposit $deposit) | |
{ | |
if($request->user()->cannot('deposit.edit', [$deposit])) { | |
abort(403, 'You are not allowed to edit this deposit.'); | |
} | |
$deposit->update($request->all()); | |
return redirect()->route('admin::admin.deposit.index')->with('message', 'The deposit has been successfully updated.')->with('success', true); | |
} | |
/** | |
* Remove the specified resource from storage. | |
* | |
* @param Illuminate\Http\Request $request | |
* @param App\Model\Deposit\Deposit $deposit | |
* @return \Illuminate\Http\Response | |
*/ | |
public function destroy(Request $request, Deposit $deposit) | |
{ | |
if($request->user()->cannot('deposit.destroy', [$deposit])) { | |
abort(403, 'You are not allowed to delete this deposit.'); | |
} | |
$deposit->delete(); | |
return redirect()->route('admin::admin.deposit.index')->with('message', 'The deposit has been successfully deleted.')->with('success', true); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace App\Models; | |
use Illuminate\Database\Eloquent\Model; | |
use Illuminate\Database\Eloquent\SoftDeletes; | |
class Deposit extends Model | |
{ | |
use SoftDeletes; | |
/** | |
* The database table used by the model. | |
* | |
* @var string | |
*/ | |
protected $table = 'deposits'; | |
/** | |
* The attributes that should be mutated to dates. | |
* | |
* @var array | |
*/ | |
protected $dates = ['deleted_at']; | |
/** | |
* The attributes that are mass assignable. | |
* | |
* @var array | |
*/ | |
protected $fillable = []; | |
/** | |
* The attributes excluded from the model's JSON form. | |
* | |
* @var array | |
*/ | |
protected $hidden = []; | |
/** | |
* When setting the amouht, make sure it is in pence. | |
* | |
* @param int $amount | |
*/ | |
public function setAmountAttribute($amount) | |
{ | |
$this->attributes['amount'] = $amount * 100; | |
} | |
/** | |
* When getting the amount, make sure it is in 00.00 format. | |
* | |
* @return float | |
*/ | |
public function getAmountAttribute() | |
{ | |
return number_format($this->attributes['amount'] / 100, 2); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace App\Http\Requests; | |
use App\Http\Requests\Request; | |
class DepositRequest extends Request | |
{ | |
/** | |
* Determine if the user is authorized to make this request. | |
* | |
* @return bool | |
*/ | |
public function authorize() | |
{ | |
return true; // @todo check authorisation for deposits. | |
} | |
/** | |
* Get the validation rules that apply to the request. | |
* | |
* @return array | |
*/ | |
public function rules() | |
{ | |
$rules = [ | |
'uuid' => array( | |
'required', | |
'max:255', | |
), | |
'amount' => array( | |
'required', | |
), | |
]; | |
return $rules; | |
} | |
/** | |
* | |
* @return array | |
*/ | |
public function messages() | |
{ | |
return []; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment