해결된 질문
작성
·
414
0
안녕하세요, 선생님!
오늘도 어김없이 에러가 나네요!
url주소 창에 localhost/get/3라고 입력을 했더니, 브라우저에서 이런 결과를 출력해주네요!
소스코드에는 강의에서 진행한 그대로 똑같이 구성되어있는데도 불구하고, 이런 결과가 출력이되니까 어디에서 잘못된 건지 감도 안 잡히네요 ㅜㅜ
아 그리고 하나 더 궁금한 점이 있습니다.
api.php와 web.php이 차이점이 무엇이고 왜 둘을 구분해서 라우팅하는 건가요?
-routes/web.php
<?php
use Illuminate\Support\Facades\Route;
use Illuminate\Http\Request;
use App\Http\Controllers\NewController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
Route::get('/get/{$id}', function($id){
return view('routing', ['id' => $id]);
});
-routes/api.php
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
});
Route::post('post', function(Request $request){
$data = $request->input('name');
return view('routing',["id"=>$id,"data" => $data]);
})
-resources/views/routing.blade.php
{{$data}}
{{$id}}
<form method="POST" action = "/api/post">
@csrf;
<input type="text" name = "name">
<input type= "submit" value = "test">
</form>
답변 1
1
Route:get 의 경우 대괄호를 치는 부분에 {$id} 라고 하셨는데 이 $는 넣지 않습니다. 주소를 지정할 때 헷갈려 할 수 있는 부분이니 조심해 주세요!
api.php 와 web.php 의 차이점은 거의 없다고 보시면 됩니다. 두군데 다 url 주소를 입력받으면 행선지를 결정하는 역할은 동일하지만, api는 앞에 주소/api 가 자동으로 붙게 되고 web은 파일에 선언한 그대로 불러올 수 있는 특징을 가지고 있습니다.
... 그 이외에는 미들웨어가 다르다는 점인데 이 부분도 web 에서 구현이 가능해서 큰 차이는 없다고 보시면 될 것 같습니다.
감사합니다, 선생님 :)