как вставить запись данных с помощью get route в Laravel - PullRequest
0 голосов
/ 24 апреля 2020

как мне отправить форму POST метод с GET маршрутом в laravel?

Маршрутом

Route::get('domain_detail/{domain_name}','domain_detailController@index');

Просмотр папка domain_detail

<form method="post" action="{{url('domain_detail')}}/{{strtolower($domain_detail->domain_name)}}">
    <div class="form-group">
        <label for="namefamily">namefamily</label>
        <input type="text" class="form-control round shadow-sm bg-white text-dark" name="namefamily">
    </div>
    <div class="form-group">
        <label for="mobile">mobile</label>
        <input type="text" class="form-control round shadow-sm bg-white text-dark" name="mobile">
    </div>
    <div class="form-group">
        <label for="myprice">myprice</label>
        <input type="number" class="form-control round shadow-sm bg-white text-dark" name="myprice">
    </div>
    <div class="form-group">
        <input type="submit" name="send_price" class="btn btn-success" value="submit">
    </div>
</form>

Контроллер

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;


class domain_detailController extends Controller
{
    public function index($domain_name)
    {
        $domain_detail_exist = DB::table("domains")->where('domain_name', $domain_name)->exists();
        if ($domain_detail_exist) {
            $domain_detail = DB::table("domains")->where('domain_name', $domain_name)->first();

            return view('domain_detail/index', ['domain_detail' => $domain_detail]);
        } else {
            return view('404');
        }
    }

    public function create()
    {
        return view('domain_detail.index');
    }
}

На контроллере я не вставил никаких кодов в функцию create, но когда я нажимаю при отправке кнопки в форме я получаю эту ошибку

Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException Метод POST не поддерживается для этого маршрута. Поддерживаемые методы: GET, HEAD.

1 Ответ

2 голосов
/ 24 апреля 2020

Используйте функцию index в вашем domain_detailController, чтобы вернуть представление. например:

public function index($domain_name)
{
   return view('domain_detail.index'); 
}

создайте маршрут для возврата вида:

Route::get('domain_detail/','domain_detailController@index');

Затем используйте функцию создания для сохранения сведений о домене следующим образом:

public function create($domain_name)
    {
        $domain_detail_exist = DB::table("domains")->where('domain_name', $domain_name)->exists();
        if ($domain_detail_exist) {
            $domain_detail = DB::table("domains")->where('domain_name', $domain_name)->first();

            return view('domain_detail/index', ['domain_detail' => $domain_detail]);
        } else {
            return view('404');
        }
    }

создайте POST-маршрут, подобный следующему:

Route::post('domain_detail/','domain_detailController@create');

Также ознакомьтесь с laravel рекомендациями в отношении соглашений об именах: https://www.laravelbestpractices.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...