Как передать значение в URL в Laravel - PullRequest
0 голосов
/ 10 января 2020

Я хочу нажать на кнопку «Просмотр сведений» и go на другую страницу «/ viewdeail / id = 2», здесь id = 2 происходит от нажатия кнопки «Просмотр сведений». Пока я готовлю этот фрагмент.

Контроллер:

public function schooldetailviewid($school_id)
     {
        return view('viewdeail/school_id={$school_id}', compact('school_id'));
     }

Маршрут

Route::get('/viewdeail/school_id={school_id}', 'ViewController@schooldetailviewid')->name('schooldetail');

Я очень запутался, как решить эту проблему.

Ответы [ 4 ]

2 голосов
/ 10 января 2020

Если вы передаете параметр таким образом /viewdeail?id=2

Тогда в вашем контроллере вам нужно использовать Request Объект для его извлечения:

public function schooldetailviewid(Request $request)
{ 

    $school_id = $request->get('id');

    return view("viewdeatil/school_id=$school_id", compact('school_id'));
}

Пожалуйста, просмотрите Laravel маршрутная документация: https://laravel.com/docs/5.8/routing#route -параметры

0 голосов
/ 12 января 2020
 Route::group(['as'=>'admin.','prefix'=>'admin','namespace'=>'Admin','middleware'=>['auth','admin']], function (){

    Route::resource('category','CategoryController');

}); 

public function index()
    {
        $categories = Category::latest()->get();
        return view('admin.category.index',compact('categories'));
    }
0 голосов
/ 11 января 2020

Вы можете достичь этого несколькими способами.

Вы можете сделать,

$school_id = $request->get('id');

или

$school_id = YourModel::find('$id');

Вы можете использовать Запрос для получения ваших данных

Контроллер

public function schooldetailviewid(Request $request)
{ 

$school_id = $request->get('id');

return view("viewdeatil/school_id/$school_id", compact('school_id'));
}

Маршрут

Ваш маршрут должен выглядеть так:

Route::get('/viewdeail/school_id/{school_id}', 'ViewController@schooldetailviewid')->name('schooldetail');

Blade ваш тег должен выглядеть так;

<a href="{{route('schooldetail', $school_id->id)}}">getDetails</a>
0 голосов
/ 11 января 2020

С помощью Laravel, если вам нужно передать требуемый параметр в вашем маршруте, вам нужно указать его в файле routes/web.php и получить его из действия вашего контроллера.

Это обычный способ чтобы сделать это:

// routes/web.php

Route::get('/viewdeail/{schoolId}', 'ViewController@details')->name('schooldetail');
// app/Http/Controllers/ViewController.php

class ViewController extends Controller {

    ...

    public function details($schoolId) {
        // your view located in ressources/views folder
        return view('viewdeail/', compact('schoolId'));
    }

}

Теперь, если вы хотите просто получить параметры, такие как, например, domain.tld/viewdeail?schoolId=3, вам нужно удалить {schoolId} по ранее определенному маршруту в файле routes/web.php и отредактируйте свой контроллер и действуйте так:

// app/Http/Controllers/ViewController.php

use Illuminate\Http\Request; // we need the Request class, so import it

class ViewController extends Controller {

    ...

    public function details(Request $request) {
        $schoolId = $request->query('schoolId');

        // your view located in ressources/views folder
        return view('viewdeail/', compact('schoolId'));
    }

}
...