aşağıdakiModeli ilişkileri ve geçen Nesneler
Poll
id | name
--------------
1 | Poll One
PollQuestion
id | poll_id | question
-------------------------
1 | 1 | Something
PollAnswer
id | question_id | answer
-------------------------------
1 | 1 | Answer 1
-------------------------------
2 | 1 | Answer 2
-------------------------------
3 | 1 | Answer 3
Bir Anket gibi bir veritabanı tasarımı Bir PollQuestion olabilir var ve bir PollQuestion birçok PollAnswer 's olabilir.
Her şey yolunda gidiyor, Anketler, sorular ve cevaplar oluşturabilirim. Bu, yönetici kullanıcı olarak giriş yapmanızı gerektiren bir arka planda yapılır.
Ön uçta Anket Sorusunu ve olası yanıtları görüntülemem gerekiyor. Anketin birçok PollResponse'ye sahip olabileceği bir PollResponse Modeli kurdum. Modeller
Route::group(['middleware' => ['web']], function() {
Route::model('polls.response', 'PollResponse');
Route::resource('/', 'PollResponseController', ['except' => ['create', 'show', 'edit', 'update', 'destroy']]);
Route::group(['middleware' => ['admin_logged', 'can_see']], function()
{
Route::model('polls', 'Poll');
Route::bind('polls', function($value, $route) {
return App\Poll::whereId($value)->first();
});
Route::resource('admin/polls', 'PollController');
Route::model('polls.questions', 'PollQuestion');
Route::resource('polls.questions', 'PollQuestionController', ['except' => ['index', 'create', 'show', 'edit', 'destroy']]);
});
});
Yani fikir aşağıdaki o zaman benim yolları böyle kurdunuz bu
class Poll extends Model
{
public function pollQuestion()
{
return $this->hasOne('App\PollQuestion', 'poll_id');
}
public function pollResponse()
{
return $this->hasMany('App\PollResponse', 'poll_id');
}
}
class PollResponse extends Model
{
public function poll()
{
return $this->belongsTo('App\Poll');
}
}
şuna benzer ana alan adını ziyaret ve en son anket sorusunu görebileceğiniz normal bir kullanıcı onun olası cevaplar. Daha sonra cevabını seçip yanıtlarını gönderirler. Bunun görünümü aşağıdaki gibidir:
<div class="panel-heading">
<h3 class="panel-title"> {{ $question->question }}</h3>
</div>
<div class="panel-body">
{!! Form::model(new App\PollResponse, ['route' => ['store', $poll->id]]) !!}
@if (count($answers) !== 0)
@foreach($answers as $key => $value)
<div class="radio">
<label>
<input type="radio" name="optionsRadios" value="{{ $value->answer }}"> {{ $value->answer }}
</label>
</div>
@endforeach
@endif
{!! Form::submit('Save', array("class"=>"btn btn-info pull-right ")) !!}
{!! Form::close() !!}
</div>
Tüm bunlar iyi çalışıyor. PollResponseController içinde mağaza işleviyle ilgili bir sorun yaşıyorum. Yanıtı gönderirseniz, poll_id, rotada tanımlandığı gibi URL'ye eklenir. Ama mağaza işlevinde, Şu anda ben çıkış akımı Anket Nesne bu beklenir
public function store(Request $request, Poll $poll)
{
dd($poll);
}
yapıyorum, ancak şu anda boş Anket Nesnesi çıktısı. İlgili Poll Nesnesini bu işleve nasıl alabilirim, böylece belirli bir Ankete yanıtları ilişkilendirebilir miyim?
Teşekkür