Я не могу получить доступ к опубликованным данным в моем store()
-методе в Laravel. Очень простая cms-система цитат в Laravel 7 хорошо работает для уничтожения и обновления записей цитат, но я не могу хранить новые.
Я отследил проблему до store()
-метода нет получение доступа к опубликованным данным в $request
.
В моем QuotesController.php
:
print_r("request-title:".$request->input('title'));
мне ничего не дает в store()
, хотя update()
работает отлично. Взгляд на запрос (print_r("<code> $request
"); ) говорит мне, что store()
не имеет пустого $request
:
POST /quotes/store HTTP/1.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Encoding: gzip, deflate Accept-Language: en-us Connection: keep-alive Content-Length: 47 Content-Type: application/x-www-form-urlencoded Cookie:
My QuotesController.php
содержит
use Illuminate\Http\Request;
use App\Quote;
class QuotesController extends Controller
{
/**
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
print_r("request-title (store):".$request->input('title'));die();
}
/**
* Update the specified resource in storage.
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
print_r("request-title (update):".$request->input('title'));die();
}
В моем view
я делаю форму для create примерно так:
<form action="store" method="POST">
@csrf
<input type="text" class="form-control" id="title">
<button type="submit" class="btn btn-primary">Go</button>
</form>
Я подозреваю, что мои проблемы происходят из-за плохой маршрутизации. Чтобы найти ошибки маршрутизации, я набрал каждый маршрут явно в web.php
:
Route::get('/quotes/populate', 'QuotesController@populate')->name('quotes.populate');
Route::get('/quotes/{id}', 'QuotesController@show')->name('quotes.show');
Route::get('/quotes/create', 'QuotesController@create')->name('quotes.create');
Route::post('/quotes/store', 'QuotesController@store')->name('quotes.store');
Route::get('/quotes/{id}/edit', 'QuotesController@edit')->name('quotes.edit');
Route::post('/quotes/{id}/update', 'QuotesController@update')->name('quotes.update');
Route::get('/quotes/{id}/destroy', 'QuotesController@destroy')->name('quotes.destroy');
Route::get('/quotes', 'QuotesController@index')->name('quotes.index');
В QuotesController::update()
, между тем, все хорошо и $request->input('title')
содержит опубликованные данные.
Где я иду не так? Почему мои опубликованные данные не отображаются в store()
, как в update()