Ларавельский столб со слизняком
Я хочу выполнить метод post, но это, кажется, не работает...
Так что у меня есть прямо сейчас URL localhost/newthread/5
.
Все это прекрасно, но теперь я хочу, чтобы 5
(slug) можно было разместить.
Как я могу это сделать?
Вид:
@include('globs.header')
<div class="panel-group col-sm-offset-1 col-sm-10">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Nieuw topic maken</h3>
</div>
<div class="panel-body">
<!-- Start Form -->
{{ Form::open(array('url' => 'PostTopic')) }}
<div class="form-group">
<label>Topic Naam (onderwerp):</label>
<input type="text" class="form-control" name="title">
</div>
<label>Bericht:</label>
<textarea name="message" class="form-control" rows="5" placeholder="Typ uw bericht..."></textarea>
<br>
<button type="submit" class="btn btn-success">Nieuw topic plaatsen</button>
{{ Form::close() }}
</div>
</div>
</div><!-- End page content -->
@include('globs.footer')
Контроллер:
public function PostTopic()
{
//Get all the data and store it inside Store Variable
$data = Input::all();
// Make's messages of faults
$messages = array(
'title.required' => 'U moet een titel opgeven!',
'message.required' => 'u moet een bericht opgeven!',
'spamprt' => 'honeypot', //spam protection
'time' => 'required|honeytime:60'
);
$rules = array(
'title' => 'required',
'message' => 'required'
);
$validator = Validator::make($data, $rules, $messages);
//process the storage
if ($validator->fails())
{
return Redirect::back()->with('errors', $validator->errors())->withInput();
}else{
//store
$thread = new Thread;
$thread->cid = Input::get('cid');
$thread->title = Input::get('title');
$thread->message = Input::get('message');
$thread->prefix = 0;
$thread->uid = Auth::id();
$thread->username = Auth::user()->username;
$thread->date_posted = CarbonCarbon::now();
$thread->save();
Session::put('_token', sha1(microtime()));
//redirect
return Redirect::back()->with('message', 'Uw bericht is succesvol geplaatst!');
}
}
Маршруты:
Route::group(array('before' => 'auth'), function()
{
Route::get('/newthread/{cid}', array('uses' => 'ForumController@CreateTopic', 'as' => 'Nieuw topic'));
});
Route::post('/PostTopic', array('uses' => 'ForumController@PostTopic', 'as' => 'Post_topic'));
Странно, скрытый вход-это то, что я не могу сделать. Потому что, как вы видите с моей точки зрения, это просто взгляд. Как я должен это исправить?
1 ответ:
Попробуйте использовать post {cid} в качестве параметра запроса
public function CreateTopic($cid) { $data['cid']=$cid; return View::make('sayfa.createtopic',$data); }
Часть представления:
{{ Form::open(array('url' => 'PostTopic/'.$cid)) }} <div class="form-group"> <label>Topic Naam (onderwerp):</label> <input type="text" class="form-control" name="title"> </div> <label>Bericht:</label> <textarea name="message" class="form-control" rows="5" placeholder="Typ uw bericht..."></textarea> <br> <button type="submit" class="btn btn-success">Nieuw topic plaatsen</button> {{ Form::close() }}
Маршрут:
Route::post('/PostTopic/{cid}', array('uses' => 'SOController@PostTopic', 'as' => 'Post_topic'));
Post метод:
public function PostTopic($cid){ //you can now have $cid with other inputs }