Je crée un formulaire avec une relation many-many. J'ai une table de poteaux et une table d'activités. Il y a un lien de plusieurs à plusieurs en utilisant le tableau croisé dynamique. Je crée un formulaire pour ajouter une ou plusieurs activités aux messages. Je reçois un 'ErrorException' - Essayer d'obtenir la propriété de non-objet. Je ne peux pas comprendre pourquoi cela ne fonctionne pas.Essayer d'obtenir la propriété de non-objet - Laravel Formulaire
Je vous serais reconnaissant pour toute aide que vous pouvez m'offrir.
Mon code pertinent est ci-dessous.
//Posts/create.blade.php
{!!Form::open(['action' => '[email protected]','method' => 'POST', 'class'=>'form-group'])!!}
{{Form::bsText('title','',['placeholder' => 'Trip Name'])}}
{{Form::bsTextarea('body','',['placeholder' => 'Trip Description'])}}
{{Form::bsSubmit('submit')}}
{{Form::label('activities', 'Activity:') }}
<select class="form-control select2-multi" name="activities" multiple="multiple">
@foreach($activities as $activity)
<option value="{{ $activity->id }}">{{ $activity->activity_name}}
</option>
@endforeach
</select>
{!! Form::close() !!}
// PostsController
public function create()
{
$activities = Activity::all();
return view('posts.create')->withActivities($activities);
$posts = Post::all();
}
public function store(Request $request)
{
// Create a new post using the request data
// Save it to the database
$this->validate(request(), [
'title' => 'required',
'body' => 'required',
]);
$post = Post::create([
'title' =>request('title'),
'body' =>request('body'),
'user_id' => auth()->id(),
'activity_id' => id()
]);
// And then redirect to somewhere in application
return redirect()->route('posts.show', $post->id);
}
D'où obtenez-vous cette exception? Sur quelle ligne? –
Que signifie 'id()' dans '' activity_id '=> id() '? – aleksejjj
Merci pour vos commentaires! Que signifie id() dans 'activity_id' => id()? Je réalise maintenant que c'est une erreur. Je reçois l'erreur de la lame au point - montre la ligne 30 dans le create.blade.php. Donc je suppose que c'est une erreur dans la forme ou le contrôleur. Ai-je raison de supposer que j'ai besoin de passer l'ID de la table d'activité (selon la table des utilisateurs) dans: '' ' $ post = Post :: create ([ 'title' => request ('title'), 'Body' => requête ('body'), 'user_id' => auth() -> id(), ]); –