сделай опрос на laravel 5.4 и мой sql

Мне нужно сделать опрос для моего веб-сайта. У меня есть это

Маршрут:

Route::resource('survey','surveyController');

контроллер

 public function index()
{
$show=survey_title::find(1);
return view('survey',compact('show'));
}

// здесь мы только что прочитали первый опрос

миграции:

Schema::create('survey_titles', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->timestamps();
});

Schema::create('survey_questions', function (Blueprint $table) {
$table->increments('id');
$table->integer('survey_title_id')->unsigned()->index();
//$table->integer('user_id')->unsigned()->index();
$table->foreign('survey_title_id')->references('id')->on('survey_titles')->onDelete('cascade')->onUpdate('cascade');
// $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade')->onUpdate('cascade');
$table->string('answer');
$table->integer('voted')->nullable();
$table->timestamps();
});

модели:
survey_question:

public function survey_titles(){
return $this->hasOne('App\survey_title');
}

public function users(){
return $this->hasOne('App\User');
}

survey_title:

 public function survey_questions(){
return $this->hasMany('App\survey_question');
}

пользователь:

public function survey_questions(){
return $this->hasOne('App\survey_question');
}

Посмотреть :

 <div class="col-md-8 col-md-offset-2">

<table class="table table-hover table-bordered table-striped">
<thead>
<tr>
<th>Voted by 0 People </th>
<th>{{$show->title}}</th>
<th>Question ID: {{$show->id}}</th>
</tr>
<tr>
<th>Check</th>
<th>Answer</th>
<th>ID</th>
</tr>
</thead>
<tbody>
@foreach($show->survey_questions as $ans)
<tr>
<td><input type="radio" name="check[]"></td>
<td>{{$ans['answer']}}</td>
<td>{{$ans['id']}}:</td>
</tr>
@endforeach
</tbody>
</table>
<a class="btn btn-primary" href="{{action('surveyController@update',$ans->id)}}">Vote</a>
</div>

Хорошо, теперь я помещаю данные вручную в базу данных и получаю.

Я хочу, чтобы при нажатии на кнопку «Голосовать» отправлялся мой идентификатор ответа, но вместо этого всегда отправлял последний идентификатор из таблицы !!!! ???

в чем дело?

и если у кого-то есть лучший код для опроса, пожалуйста, дайте мне знать

спасибо заранее и извините за мой плохой язык. англ это не мой язык


Изменить: проблема выше решена

Теперь мне нужно сохранить этот идентификатор в таблице

вот мой код

кнопка:

<a name="vote{{$ans->id}}" href="{{action('surveyController@store')}}"   class="btn btn-primary">Vote</a>

контроллер

 public function store(Request $request,$id)
{
$name=$request->input('vote'.$id);
DB::table('survey_questions')->insert([
'voted'=>$id
]);
return redirect('survey');
}

этот код ничего не сохраняет, но если я использую dd () в функции шоу, то это правильно

-1

Решение

Это происходит потому, что:

<a class="btn btn-primary" href="{{action('surveyController@update',$ans->id)}}">Vote</a>

находится вне цикла foreach, поэтому после завершения цикла последний идентификатор устанавливается для ссылки.

Поместите ссылку href в цикл foreach, чтобы он генерировал ссылку для каждого ответа.

<tr>
<th>Voted by 0 People </th>
<th>{{$show->title}}</th>
<th>Question ID: {{$show->id}}</th>
<th>Vote</th>
</tr>

@foreach($show->survey_questions as $ans)
<tr>
<td><input type="radio" name="check[]"></td>
<td>{{$ans['answer']}}</td>
<td>{{$ans['id']}}:</td>
<td><a class="btn btn-primary" href="{{action('surveyController@update',$ans->id)}}">Vote</a></td>
</tr>
@endforeach
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]