Невозможно отследить проблему, с которой вы столкнулись.Попробуйте этот код и прокомментируйте, если у вас возникли проблемы.
Внутри вашего файла маршрута
Route::post('project', 'ProjectController@store')->name('project.store');
В вашем представлении создания
<form method="POST" action="{{route('project.store')}}">
@csrf
<div class="field">
<label class="label" for="title">Title</label>
<div class="control">
<input type="text" class="input {{ $errors->has('title') ? 'is-danger' : ''}}" name="title"
value="{{ old('title') }}" placeholder="Project title">
</div>
</div>
...
<div class="field">
<div class="control">
<button type="submit" class="button is-link">Create Project</button>
</div>
</div>
@include('errors')
</form>
В вашем ProjectController
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Post;
class UserController extends Controller{
public function store(Request $request)
{
$this->validate($request, [
'title' => 'required|max:255',
]);
$post = Post::create([
'title' => $request->title,
'owner_id' => auth()->id()
]);
return redirect('/projects');
}
РЕДАКТИРОВАТЬ 1
В предыдущем коде внутри ProjectsController вместо использования атрибутов $ попробуйте использовать
public function store()
{
$project = Project::create([
'title' => request('title'),
'owner_id' => request('owner_id')
]);
Mail::to($project->owner->email)->send(
new ProjectCreated($project)
);
return redirect('/projects');
}
EDIT 2
Вместо использованиясоздать метод, попробуйте этот
public function store()
{
$project = new Project();
$project->title = request('title');
$project->owner_id = request('owner_id');
$project->save();
...
}