튜토리얼 칼럼에서 소개합니다! , 도움이 필요한 친구들에게 도움이 되길 바랍니다! 소개
사용자 데이터는 동시에
위험입니다! 이 기사에서는 위험을 피하는 방법을 가르치지 않습니다!
코드 타임
우리는 라우팅 계획을 이야기할 때 URL의 위치 매개 변수 바인딩을 지침으로 사용하는 방법에 대해 이야기했습니다. 사실 그것도 사용자 입력 데이터를 얻는 방법입니다.laravel
은 사용자 입력을Input
객체에 저장하며 논리적으로 사용자 입력은 요청 항목에 속해야 하므로Request도 입력의 메서드와 데이터를 상속합니다. 예를 들어 다음과 같은 경로가 있습니다.
Route::post('form', function (Illuminate\Http\Request $request) { // $request->method()});양식 주소를 시뮬레이션하고 post 방식으로 데이터를 전송한 후 Request 방식을 사용합니다. 사용 가능한 획득 방법을 살펴보겠습니다. 먼저
$request->all()
에 대해 이야기해 보겠습니다. 이는 모든 입력 데이터를 인쇄합니다. 예를 들어 양식에는 다음 필드가 있을 수 있습니다. HTML 콘텐츠를 살펴보세요! 데이터를 디버깅하기 위해 경로는 다음과 같이 등록됩니다.Route::post('/post-route', function (Request $request) { var_dump($request->all());});무엇이 출력될지 추측해 보세요.
/** * [ * '_token' => 'CSRF token here', * 'firstName' => 'value', * 'utm' => 12345 * ] */맞습니다. 게시물 양식의 firstName 필드, 쿼리 문자열의 쿼리 매개변수 utm, CSRF 보호를 위한 laravel 내장 함수가 표시됩니다. 기본 양식 필드는
__token
이므로 괜찮습니다. 신경쓰지 마세요. . 하지만 코드에 집착하는 학생들은 참기 힘들 수도 있어요. 이건 내 분야도 아니고 코드에서 사용하지도 않는 이__token, 이 낯선 변수. 예, 요청 매개변수에서 직접 필터링할 수 있습니다:
Route::post('/post-route', function (Request $request) { var_dump($request->except('_token'));});그중
Exception() 메소드는 특정 필드를 필터링하는 데 사용되므로 사용할 필요가 없습니다. 해당하는 것은 사용되는 필드를 지정하는 only()
메서드입니다. 다음과 같이 사용하세요:$request->only(['firstName', 'utm']);때로는 일부 키가 존재하는지 확인하는 것이 논리적입니다. Laravel은 키가 존재하는지 확인하는 두 가지 방법을 제공합니다. 하나는 has이고 다른 하나는 exists입니다. 일부 반 친구들은 이미
has가 있는데 왜 exists가 필요한지 궁금해할 수도 있습니다. 왜냐하면 그들의 기능이 다르기 때문입니다. has 메소드는 키가 존재하는지 확인할 뿐만 아니라 키 값이 empty
(예: null, 빈 문자열, false, 0, 빈 배열, 빈 객체 등)인 경우 false로 판단합니다. .). 따라서exists를 사용하여 키의 존재 여부를 간단히 판단할 필요가 있으며, 이를 사용할 때 이 미세한 차이에 주의해야 합니다. 사용법은 매우 간단합니다. 메소드를 직접 호출하면 됩니다.
if ($request->has('utm')) { // Do some work}입력 값 키가 없으면 이에 대한 기본값을 설정할 수도 있습니다. 이는 input 메소드의 두 번째 매개변수입니다. 전화:
Route::post('/post-route', function (Request $request) { $userName = $request->input('name', 'anonymous');});사용자가 이름 필드를 전달하지 않으면 대신 익명을 사용하세요.
위에 언급된 내용은 모두 간단한 키-값 쌍입니다. 다음과 같이 수신 필드가 배열일 수 있는 형식도 있습니다.
배열은 laravel에서 도트 모드로 읽을 수 있기 때문입니다. 구문 분석에는 도우미 클래스 Arr의 일반적인 방법이 사용됩니다. 예를 들어 특정 키를 얻으려면$employeeZeroFirstName = $request->input('employees.0.firstName');키 이름을 명확하게 지정하고 레벨에 해당합니다. 별표를 사용하여 특정 수준의 모든 키를 일치시킬 수도 있습니다.
$allLastNames = $request->input('employees.*.lastName');또는 특정 키를 지정한 다음 수준 수에 관계없이 있는 그대로 반환합니다.
$employeeOne = $request->input('employees.1');특정 사용법의 경우 독자는 소스 코드를 확인할 수 있습니다. 또는 문서화하고 깊이 있는
Arr
작업 클래스 사용법을 연구하세요.이 글에서는 정상적으로 사용자 데이터를 얻는 방법에 대해서만 설명했을 뿐, 타당성을 확인하는 방법에 대해서는 다루지 않았습니다. 데이터. 프런트 엔드 검증은 거의 쓸모가 없기 때문에 데이터베이스에 기록된 최종 데이터는 여전히 애플리케이션에서 확인해야 합니다.
이것이 검증기의 역할입니다. 검증기에 대해서는 다음 장에서 자세히 설명하겠습니다. ㅋㅋㅋ
위 내용은 Laravel 애플리케이션은 데이터를 얻는 것부터 시작하여 사용자를 다룹니다!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!