-
app/Http/Requests/Projects/CreateRequest.php
Open in GitHubuse App\Entities\Projects\Project; use App\Http\Requests\Request; class CreateRequest extends Request { public function authorize() { return auth()->user()->can('create', new Project()); } public function rules() { return [ 'name' => 'required|max:50', 'proposal_date' => 'nullable|date|date_format:Y-m-d', 'proposal_value' => 'nullable|numeric', 'customer_id' => 'nullable|numeric', 'customer_name' => 'nullable|required_without:customer_id|max:60', 'customer_email' => 'nullable|required_without:customer_id|email|unique:users,email', 'description' => 'nullable|max:255', ]; } public function messages() { return [ 'customer_name.required_without' => __('validation.project.customer_name.required_without'), 'customer_email.required_without' => __('validation.project.customer_email.required_without'), ]; } }
-
app/Http/Controllers/Projects/ProjectsController.php
Open in GitHubuse App\Entities\Projects\ProjectsRepository; use App\Http\Requests\Projects\CreateRequest; class ProjectsController extends Controller { private $repo; public function __construct(ProjectsRepository $repo) { $this->repo = $repo; } // public function store(CreateRequest $request) { $this->authorize('create', new Project()); $project = $this->repo->create($request->except('_token')); flash(__('project.created'), 'success'); return redirect()->route('projects.show', $project); } // }