我是Laravel的新手,即时通讯目前使用的是5.7版。和即时通讯试图将一些表格数据放入mysql表,即时通讯收到此错误。

Symfony \组件\ HttpKernel \异常\ MethodNotAllowedHttpException
没有讯息

但是我不知道我要怎么做。如果可以,请你帮助我。请在下面查看我的代码。

我的路线:

Route::get('/invo_admin/create_new_offer', 'CreatenewofferController@index')->name('create_new_offer');


另外,我还有一个名为admin的子文件夹,在该文件夹中我具有仪表板的视图。

Route::resource('admin', 'CreatenewofferController');


我的模特:

namespace App;

use Illuminate\Database\Eloquent\Model;

class Offers extends Model
{
protected $fillable =[
    'offer_name',
    'offer_image',
    'offer_discription',
    'offer_vendor',
    'offer_reward_amount',
    'offer_limit',
    'offer_duration',
    'offer_status'
];
}


我的控制器:

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Offers;

class CreatenewofferController extends Controller
{
 /**
 * Create a new controller instance.
 *
 * @return void
 */
public function __construct()
{
    $this->middleware('auth');
}
/**
 * Display a listing of the resource.
 *
 * @return \Illuminate\Http\Response
 */
public function index()
{
    $title = 'this is a title';
    return view('admin.create_new_offer')->with('title',$title);
}

/**
 * Show the form for creating a new resource.
 *
 * @return \Illuminate\Http\Response
 */
public function create()
{
    return view('admin.create_new_offer');
}

/**
 * Store a newly created resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */
public function store(Request $request)
{
    $this->validate($request,[
        'offer_name' => 'required',
        'offer_image' => 'required',
        'offer_discription' => 'required',
        'offer_vendor' => 'required',
        'offer_reward_amount' => 'required',
        'offer_limit' => 'required',
        'offer_duration' => 'required',
        'offer_status' => 'required'
    ]);
    $offers = new Offers([
        'offer_name' => $request->get('offer_name'),
        'offer_image' => $request->get('offer_image'),
        'offer_discription' => $request->get('offer_discription'),
        'offer_vendor' => $request->get('offer_vendor'),
        'offer_reward_amount' => $request->get('offer_reward_amount'),
        'offer_limit' => $request->get('offer_limit'),
        'offer_duration' => $request->get('offer_duration'),
        'offer_status' => $request->get('offer_status')
    ]);
    $offers->save();
    return redirect()->route('admin.create_new_offer')->with('success', 'You have successfully added a new offer');
}
}


我的看法:

<form role="form" method="POST" action="{{ url('invo_admin/create_new_offer') }}">
            {{csrf_field()}}
        <!-- text input -->
        <div class="form-group">
            @if(count($errors) > 0)
                <ul>
                @foreach ($errors ->all as $error)
                    <li class="text-danger">{{error}}</li>
                @endforeach
                </ul>
            @endif
            @if(\Session::has('success'))
                <p>{{\Session::get('success')}}</p>
            @endif
            <label>Name</label>
            <input type="text" class="form-control" name="offer_name" placeholder="Offer Name">
        </div>
</form>

最佳答案

将此添加到您的路线。

Route::post('/invo_admin/create_new_offer', 'CreatenewofferController@store')->name('create_new_offer');


它接受发布请求,并将其传递到控制器中的“存储”方法。

10-06 03:16