Skip to main content

Black Friday 2025! Only until December 1st: coupon FRIDAY25 for 40% off Yearly/Lifetime membership!

Read more here

nafiesl/free-pmo

457 stars
2 code files
View nafiesl/free-pmo on GitHub

app/Http/Requests/Projects/CreateRequest.php

Open in GitHub
use 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 GitHub
use 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);
}
//
}

We'd Love Your Feedback

Tell us what you like or what we can improve

Feel free to share anything you like or dislike about this page or the platform in general.