diff --git a/app/Entities/Projects/Issue.php b/app/Entities/Projects/Issue.php index 44f1658..877c7b3 100644 --- a/app/Entities/Projects/Issue.php +++ b/app/Entities/Projects/Issue.php @@ -6,5 +6,5 @@ use Illuminate\Database\Eloquent\Model; class Issue extends Model { - // + protected $fillable = ['project_id', 'title', 'body', 'creator_id']; } diff --git a/app/Http/Controllers/Projects/IssueController.php b/app/Http/Controllers/Projects/IssueController.php index fe977e1..7f70e94 100644 --- a/app/Http/Controllers/Projects/IssueController.php +++ b/app/Http/Controllers/Projects/IssueController.php @@ -2,6 +2,8 @@ namespace App\Http\Controllers\Projects; +use Illuminate\Http\Request; +use App\Entities\Projects\Issue; use App\Entities\Projects\Project; use App\Http\Controllers\Controller; @@ -13,4 +15,26 @@ class IssueController extends Controller return view('projects.issues', compact('project', 'issues')); } + + public function create(Project $project) + { + return view('projects.issues.create', compact('project')); + } + + public function store(Request $request, Project $project) + { + $issueData = $request->validate([ + 'title' => 'required|max:60', + 'body' => 'required|max:255', + ]); + Issue::create([ + 'project_id' => $project->id, + 'creator_id' => auth()->id(), + 'title' => $issueData['title'], + 'body' => $issueData['body'], + ]); + flash(__('issue.created'), 'success'); + + return redirect()->route('projects.issues.index', $project); + } } diff --git a/database/migrations/2019_03_03_210017_create_issues_table.php b/database/migrations/2019_03_03_210017_create_issues_table.php index d2cf1ab..f67ddbf 100644 --- a/database/migrations/2019_03_03_210017_create_issues_table.php +++ b/database/migrations/2019_03_03_210017_create_issues_table.php @@ -18,6 +18,7 @@ class CreateIssuesTable extends Migration $table->unsignedInteger('project_id'); $table->string('title', 60); $table->string('body'); + $table->unsignedInteger('creator_id'); $table->timestamps(); }); } diff --git a/resources/views/projects/issues/create.blade.php b/resources/views/projects/issues/create.blade.php new file mode 100755 index 0000000..b3deedb --- /dev/null +++ b/resources/views/projects/issues/create.blade.php @@ -0,0 +1,30 @@ +@extends('layouts.project') + +@section('subtitle', __('issue.create')) + +@section('action-buttons') +@can('create', new App\Entities\Projects\Job) + {!! html_link_to_route('projects.issues.create', __('issue.create'), $project, ['class' => 'btn btn-success', 'icon' => 'plus']) !!} +@endcan +@endsection + +@section('content-project') + +