Tutorial Laravel – Como Criar um Sistema de Pesquisa/Busca sem Atualizar a Página(jQuey)

이 비디오에서 내가 jQuery로 페이지를 업데이트하지 않고 검색 시스템을 만들 수있는 방법 중 하나를 보여줄 것입니다, 다른 채널 비디오에 오신 것을 환영합니다 나는 설명에 프로젝트를 연결, 검색 시스템을 만들 후 2 시스템 설계의 이점을 취할 것입니다

나는 프로젝트에 일부 변경을 할 수 있습니다 에서 '응용 프로그램 / HTTP / 컨트롤러 / PesquisaControllerphp은'나는 'JSON'를 반환하는 기능을 수정하는거야 '자원 / 뷰 / pesquisablade

php'에서 나는 '입력'태그의 '검색'ID를 추가하는거야의 'H4'이름 'qtde'와 클래스와 함께 'DIV' 'COL-MD -12 '이름으로'텍스트 ' 나는 스크립트 태그를 추가 할 것입니다 : '검색'ID 입력에 키보드 버튼을 누르는 이벤트가 검출된다 당신이 '입력'검색 3 개 이상의 문자를 할 때 검색이 수행됩니다 ID 태그 'qtde'에서 텍스트 배치됩니다 'Pesquisando을 ' 데이터는 '검색'URL에 GET 방식으로 검색됩니다하고 '검색'입력에있는 텍스트를 보낼 것입니다 ID 태그 'qtde'에서 발견 된 문자의 수를 배치됩니다 제목, 이미지와 링크 텍스트 HTML을 구축 할 것입니다

텍스트가 발견 된 경우 당신이 '텍스트'아이디 DIV에서 텍스트가있을 경우는 ID 태그 'qtde'메시지 'Nenhum Texto들 Foi Encontrado에없는 경우, 내장 HTM이 배치됩니다, 검증 될 것입니다! ' 그것은 다음 비디오까지했다

Tutorial Laravel – Como Criar um Sistema de Pesquisa Busca sem Atualizar a Página(Vue.js)

이 비디오에서 내가 VueJs로 페이지를 업데이트하지 않고 검색 시스템을 만들 수있는 방법 중 하나를 보여줄 것입니다, 다른 채널 비디오에 오신 것을 환영합니다 나는 설명에 프로젝트를 연결, 검색 시스템을 만들 후 2 시스템 설계의 이점을 취할 것입니다

나는 프로젝트에 일부 변경을 할 수 있습니다 에서 '응용 프로그램 / HTTP / 컨트롤러 / PesquisaControllerphp은'내가 JSON을 반환하는 기능을 수정하는거야 '자원 / 뷰 / pesquisablade

php'에서 나는 약간 수정을가합니다 나는 프로젝트에 'vuejs'의 CDN 및 플러그인 'VUE-자원'의 CDN을 추가합니다 '컨테이너 클래스 I은 ID'SISTEMA – pesquisa '를 추가 할 것이다있다 사업부있다 나는 TB 나는 그것에서 VUE의 인스턴스를, 스크립트 태그를 추가합니다 : 그것은 ID '시스템 검색'이 될 것입니다 날짜에서 3 개 변수 'MSG', 'apesquisar'와 'textos'을해야합니다 '방법'에서, 나는 'pesquisar의 이름 기능을 추가합니다

의 keyup = "pesquisar"와 V-모델 = "apesquisar"내가 이름을 제거하고 V-에 추가 할 것 'pesquisar'이름 입력에서 H4 태그에 나는 MSG를 추가하며, 패널 클래스 사업부에 나는 V-의 변수 텍스트를 통해 갈이, 제목, 이미지 및 링크가 구축 될 것입니다 추가 할 것입니다 당신이 '입력'검색 3 개 이상의 문자를 할 때 'pesquisar'기능에서 검색이 수행됩니다 'MSG'에서는 텍스트를 넣어 될 것 '검색을 ' 데이터는 '검색'URL에 get 메소드에 의해 검색되고 'apesquisar'입력에있는 텍스트를 보낼 것입니다 그것은 'MSG'텍스트있을 것이다 ''Nenhum Texto들 Foi Encontrado가 0이면 반환 데이터, 텍스트의 수는 텍스트의 전체를 찾을 수있을 것이다 0 'MSG'과 다른 경우, 텍스트에 배치됩니다! ! ' 그것은 다음 비디오까지했다

Kohana: A Lightweight PHP Framework

[세미나] [Kohana : 경량 PHP 프레임 워크] [브랜든 리우] [하버드 대학] [이 CS50이다] [CS50

TV] 안녕하세요 여러분 내 이름은 브랜든이다 나는 컴퓨터 과학을하고있는 대학에서 여기에 주니어이야, 오늘 우리가 이야기하는거야 PHP는 웹 개발 프레임 워크입니다 Kohana 오늘, 라이브 코딩 세미나가 될 것입니다 그래서 나는 기본적으로 5 ~ 10 분 Kohana가 무엇인지 설명 보낼거야 그리고 말 그대로 슈퍼 간단한 블로그를 구축하는거야 여기 말 그대로 처음부터 당신을 위해 우리는 Kohana 웹 사이트에서 코드를 다운로드 할거야 그리고, 우리는 블로그를 구축을 시작하는거야, 희망 매우 유익 할 것이다 당신은 아마도 볼 수 있기 때문에 어쩌면 내가 어떤 실수를 할 수 있습니다, 당신은 나를 그들로부터 복구 볼 수 있습니다, 나는이 블로그를 통해 구축 또는 당신은, 내 생각 프로세스를 볼 수 있습니다 그리고 그 사이에, 당신은 또한 프레임 워크 자체에 익숙해 있습니다

희망 그것은 매우 유익한 행사가 될 것입니다 첫째, 프레임 워크는 정확히 무엇인가? 지금까지 CS50을 복용 한 경우, 당신은 정말 어떤으로 근무 한 적이없는 프레임 워크 아직, 그리고 것은 이것이다 당신은 아마 이미 1 개 웹 개발 PSET을했습니다 과의 당신이 건물 웹 사이트 웹 사이트를 구축하고 유지하기 위해 계속 가정 해 봅시다 당신은 몇 가지를 발견하기 시작합니다 당신이 알 수 있습니다 우선 당신은 아마 같은 일을하고있는 것입니다 또 다시 모든 시간, 사용자가 입력 한 데이터를 청소 같은 것들, 특정 방식으로 파일을 정리 같은 것들

당신은 또한 아마 알 수 있습니다 다른 것은 코드이다 아주, 아주 난장판이 될 시작할 수 있습니다, 당신은, 혼란을 떠나 그냥 아주 힘든 시간을 유지있을 수 있습니다 또는 당신은 당신의 코드를 구성하기 시작하고 모듈 제조 할 수있다 특정 방식으로는 유지 관리하기가 더 웹 프레임 워크는 기본적으로 온 곳이다 많은 웹 사이트를 구축 한이 사람들은, 그들은 말했다, "우리는 우리가 웹 사이트를 구축이 매번 다시 할 필요가 없습니다" "왜 우리는 당신을 위해 모든 일을하는 패키지를하지 않습니다 매 시간 당신은 웹 사이트를 구축하고 싶어? " 그리고 당신은 새로운 웹 사이트를 만들 때 이렇게, 당신은 정확히 특정 웹 사이트에 대해 무엇인지에 초점을 맞 춥니 다 당신은 모든 다양한 구성을 반복 할 필요가 없습니다 과 코드의 분리 및 재 작성 코드 당신은 자주 당신이 웹 사이트를 만들 때해야 할 것이다

아이디어는 프레임 워크는 높은 수준의 코드를 작성 할 수 있다는 것입니다 낮은 수준의 세부 사항에 대해 걱정할 필요없이 낮은 수준의 세부 사항과 같은 수 있습니다 사용자가 입력 한 데이터를 정화 다루는 즉 당신이 정말로 걱정할 필요가 없습니다 뭔가 당신은 당신의 웹 할당에 대해 실제로 무엇에 집중해야합니다 그것은 상용구 코드를 많이 제거합니다

그것은 당신의 프로젝트를위한 아키텍처입니다 가장 인기있는 중 하나는 모델 – 뷰 – 컨트롤러 것 이는 내가 두 번째에 대한 이야기를하겠습니다 그리고 많은 시간이 프레임 워크는 일련의 절차를 구체화, 규칙 및 사용하는 모범 사례 그래서 당신은 웹 프레임 워크를 채택 할 때 당신은 어떤 방식으로 코드를 작성해야, 그것은 일반적으로 원칙의 설정에 동의 것 일반적으로 인정 된 사회의 코드를 작성하는 좋은 방법 그것은 더 유용, 코드를 더욱 유지 보수하게, 등등 등등 그리고 마지막으로, 일이 나는 프레임 워크에 대해 강조하고 싶은 라이브러리 대 제어의 반전에 대한이 아이디어, 그리고 것은 이것입니다

라이브러리 및 프레임 워크의 차이는 라이브러리이다 당신은 여전히 ​​메인 프로그램을 작성, 당신은 종류의 라이브러리를 호출하고 라이브러리에 호출하면 당신을 위해 뭔가를 할 수 있습니다 라이브러리와 프레임 워크의 차이 프레임 워크가 제어로 시작이다 그리고, 코드를 호출 그래서 당신은 그것을 생각할 수있다 – 이것이 그것이 framework–라고 왜 프레임 워크는 코드이 프레임 구조를 제공 당신은 구멍을 채우 이 두 번째에 더욱 명백해질 것이다 당신이 볼 때 나 프레임 워크의 컨텍스트 내에서 코드를 작성하기 시작합니다 당신은 내가 격차를 작성하고 있습니다 것을 볼 수 있습니다, 상기 프레임 워크는 거의 모든 이동 부분을 제어하는 나는 적절한 장소에 조각을 넣어해야합니다 오늘 우리는 Kohana에 대해 이야기하는거야 이는 많은 PHP 프레임 워크 중 하나입니다 웹 프레임 워크가 있으며, 거의 모든 단일 언어의 사람이있다, Kohana은 틀림없이 있기 때문에 내가 Kohana을 따기 해요 일반적으로 픽업 할 수있는 가장 쉬운 PHP 프레임 워크로 인정했다

그것은 가장 가벼운입니다 많은, 더 많은 기능을 갖추고 거기에 다른 사람이있다, 하지만 그들은 픽업하기 어려운 경향이있다 그리고 마지막으로, Kohana는 MVC 아키텍처를 사용합니다 그것은 우리가 문자 그대로 프로젝트를 구축 할 수있을만큼 경량 여기 바로 눈 앞에서, 그리고 당신이 할 수있는 거의 아주 쉽게 따라 할 MVC의 아키텍처는 무엇입니까? 그것은 모델 – 뷰 – 컨트롤러의 약자 어쩌면 당신은 당신이 지금까지 작성했던 코드에 대해 생각하는 경우 웹 개발의 Pset의 일부 이 중 일부를 볼 수 있습니다 만, 일반적으로는 쓰기를 시작할 때 더 복잡한 웹 응용 프로그램, 이 3 개 개의 세그먼트들 사이의 분할은 더 명백된다

나는 종류의 스택으로 여기에 MVC를 배치 종종 당신은 사람들이 웹 개발에 스택에 대해 이야기를 듣게 될 것입니다 이는 아이디어를 설명하는 것입니다 각 층은 각각의 구성 요소는 정말에만 통신을 시도 2 개 구성 요소 사이의 다른 누군가가 클라이언트 또는 브라우저로 웹 사이트에 액세스합니다 그들은 뷰 코드를 통해 프로그램과 상호 작용합니다 뷰 코드는 상기 제어기와 상호 작용한다 컨트롤러 모델과 상호 작용 그리고 모델은 SQL 데이터베이스와 상호 작용합니다

그리고 더 당신은 당신의 코드를 제대로 작성하는 경우 사이에서 호핑이 없습니다 이러한 것들을 어떻게해야합니까? 이 모델은 기본적으로 데이터를 다루는 코드의 조각이다 당신이 저장하는 객체로, 데이터베이스를 다루는 건, 또는 데이터베이스에서 해당 개체를 검색, 그 모든 모델에 의해 처리합니다 어쩌면 당신은 당신의 데이터베이스 객체를 가지고있다 우리는 게시물 할 필요 모델을 만들려고하고, 그래서 포스트는 몇 가지 속성을 가질 수있다

당신은 글을 그 게시물을 저장하거나 검색하는 주위의 기능을 가질 수있다 또는 등 등 게시물을 필터링, 그 모델에 의해 처리있어 모든 코드입니다 컨트롤러는, 애플리케이션 로직의 일종이다 다른 많은 것들을 응용 프로그램 로직에 갈 수 있습니다 경우에 당신은 다른 API로 얘기 응용 프로그램의 로직을 상대하고있는 곳이 될 수있다 당신이하려는 경우 여러 다른 모델에서 데이터를 가져다 자주 컨트롤러에 의해 처리 될 수있는 몇 가지 방법으로 그들을 결합해야합니다 예를 들어, 페이스 북, 당신은 친구 사람의 경우, 그 관계를 구축 아마도 그 행위 제어기에 의해 수행 될 수있다

그리고 마지막으로,보기는 당신이 실제로 무엇을보고 생성하는 것 코드입니다 많은 시간 나는 CS50의 psets를 생각 그들은 정말이 3 가지를 분리하는 너희들을 권장하지 않습니다 당신은 아마 상단이 큰, 긴 파일 곳이있을 것이다 당신은 몇 가지 SQL 쿼리를하고 어쩌면 일부 처리를 할 데이터를 데이터베이스에서 검색, 다음은 맨 아래에있는 모든 HTML이있다 그리고 당신은 찾을 수 있습니다 당신은 더 많은 페이지를 만들 때 당신은 몇 가지 코드의 반복을 거라고, 또한, 문제는 파일이 정말 크고 긴 얻을 수있다 및 관리가 다루기된다 MVC는 잘 간주하는 이유 여러 가지 이유입니다

우선 문제의 무언가라고 분리입니다 당신이 잔 마셔요 때 아이디어는있다 이상적으로 코드의 한 조각이 1 일을해야 정말 잘 할, 당신은 다른 일을 할 코드의 조각을 결합해서는 안된다 예를 들어, 뷰 코드와 모델 코드, 그들은 정말 관련이있을 필요가 없습니다 그들은 같은 파일에있을 필요가 없습니다, 그래서 당신은, 그들을 분리 할 때 그래서 유지하기 쉽다 다른 것은 코드 재사용입니다 당신은 자신이 같은 SQL 쿼리를 작성하거나 일을 찾을 수 있습니다 1 개 함수로 추상화 될 수있는 유사한 쿼리, 그리고 그 모델과 컨트롤러 뒤에 생각, 프로젝트에서 다른 장소에서 다시 사용할 수있는 별도의 기능에 데

그리고 마지막으로, 즉, 코드를 건조에 묶여 여부를 자신을 반복, 자신을 반복하지 않는다 이 개발에 매우 ​​이해할 수있다 당신은, 당신은 당신이 자신을 반복하는 경우 때문에, 자신을 반복하지 않을 수 있습니다 때마다, 그것은 훨씬 더 비용이 많이 드는 유지하기입니다 당신이 한 일을 변경하려는 경우, 당신은 어디에서나을 변경해야, 그 버그로 연결, 그것은 끔찍한입니다 괜찮아

질문 지금까지 Kohana에 대해 전혀? 큰 이제 우리는 라이브 코딩 세션에 뛰어들 겁니다, 잘하면 모든 것이 잘 어울린다 나는 기본적으로이 웹 사이트를 구축하기 위하여려고하고있다 내 원격 서버 중 하나, 그리고 너희들도 할 수있는 방법에 웹 사이트를 확인하고 웹 사이트에 액세스, 또한 환경, 내 원격 시스템보다 더 구성되는, 그것은 리눅스 대신 OS X를 실행하고 있기 때문에 우리는 문자 그대로 시작하는 것입니다 KohanaFrameworkorg

나는 웹 사이트에서 코드를 다운로드 할거야 나는, 링크 주소를 복사거야 내 서버로 이동, 다운로드, 나는 그것을 추출하는거야 [학생] (가) 큰 텍스트를 만들 수 있습니다 무엇입니까? [브랜든 리우 즉 더 나은가요? [학생]이 행할 수 있습니까? >> [브랜든 리우] 네, 괜찮아요 나는, ZIP 파일을 다운로드 Kohana라는 디렉토리에이 압축을 푼 우리는 그 CS50-Kohana의 이름을 바꿀거야 과의은에 가자 신난다

여기에 서로 다른 파일들을 참조하십시오 여기에서의 모든 단일 파일을 통해 이동하지 않을 로지텍은 – 당신의 대부분은 무시할 수 우리의 시간 제약 때문에, 그러나 일반적으로는 Kohana, 당신이 제일 먼저 설치할 때 당신이 디렉토리로 이동되고, 당신은 기본적으로 어떤 환경 테스트 및 이것 저것을 다하겠습니다 환경이 제대로 Kohana를 실행하도록 설정되어 있는지 확인합니다 모든 것이 모든 권리 있는지 확인하십시오 당신은 전달 된 대부분의 것들을 볼 수 있지만, 일반적으로 당신은 항상이 1 개 문제로 실행 어디에 어떤 디렉토리에 쓰기 권한이 없습니다 불평, 그 때문에 일부 사용 권한입니다 나는 너희들이 CS50의 파일 권한에 대해 배운 얼마나 모른다 당신은 웹 개발을 할 경우, 당신은이 문제에 많이 실행하는 것입니다 나는 그것을 쓸 수 있도록거야 그리고 나는 또한에 있다고 생각 – 거기에 우리가 간다

자, 이제 당신은 모든 것을 통과를 볼 수 있습니다, 그리고 지금은 installphp 파일의 파일의 이름을 알려줍니다 나는 installedphp하는 installphp 파일 파일을 이동하는거야 지금은 새로 고침 경우, 그것은 나에게 약간의 오류를 제공하고, 디버깅이 들어오는 곳이다

당신이 실제로 무슨 일이 일어날 볼 수있는 곳이다 문제는, Kohana의 전제 조건은 기본적으로이다 프로젝트는, 도메인의 루트 디렉토리에 있습니다 그래서 당신이 demobrandonkliucom에있을 것으로 예상합니다 우리는 하위 폴더에 실제로 있다고 그것을 이야기해야합니다

그것은 CS50 Kohana라는 하위 폴더에 있습니다 문제는,이 CS50-Kohana을 잘못 해석 것입니다 내가 두 번째로 당신에게 설명 할 것이다 뭔가 다른, 같은 하지만 예상 할 수있는 무언가의 당신을 말해야한다 우리가 할 겁니다 것은 우리가 bootstrapphp이라는 폴더에 갈 것입니다, 이는 다른 많은 것들을이 설정되어있는 구성 폴더입니다

나는를 엽니 다 그리고 어쩌면 내가 할거야 최초의 것들 중 하나는 시간대를 변경할 수 있습니다 그리고 나서 보자 아하! 바로 여기에 다른 구성 말의 무리가 여기에있다, 하지만 내가 찾는 사람은 기본 URL이라는 것은,이다 기본적으로 나는 그것이 Kohana로 설정 얻을 하지만, CS50-Kohana에 그것을 바꿀거야 그리고 나는 그것을 해결한다고 생각합니다

네, 좋아요 기본적으로, 그것이 말하는, 그것은 작동하고 있음에 "Hello World"를 참조하십시오합니다 그 어디에서 왔을 까? 우리는 안녕하세요 세계에 어떻게 얻었 는가? 정확히 어디 실제로 쓴 코드는? 그것을 이해하기 위해, 나는 라우팅이라는 개념을 소개합니다 거의 모든 웹 프레임 워크, 라우팅이라는 개념이 특정 URL을 매핑합니다 소프트웨어의 조각은이다 당신의 프레임 워크 내에서 코드의 특정 부분에 일부 URL을 가지고 예를 들어, 당신은 foo

com/blog/all 같은 일부 URL로 이동 다음 프레임 워크는 할 것입니다 무엇을 – 또는 적어도 어떤 Kohana은 do– 것입니다 이 컨트롤러 블로그라는 클래스를 찾을 것입니다, 모든 기능이라는 조치를 실행하는 것입니다 나는 클래스와 기능에 대해서 이야기하고 알고, 나는 너희들하지 덮여 클래스와 기능을 알고 아직 CS50에서,하지만 지금은, 당신은 기능의 단지 그룹으로 수업 생각할 수있는, 함께 기능을 그룹화하는 방법입니다 그건 정말 당신이 알아야 할 모든입니다 우리는 우리의 폴더 구조를 보면 이제, 응용 프로그램 폴더 안에 클래스라는 또 다른 폴더가, 다른 폴더는 컨트롤러와 모델이라고합니다 당신이 컨트롤러 폴더 안에 보면, 우리는 오신 것을 환영합니다라는 파일이 있음을 볼 수 당신은, 컨트롤러에 오신 것을 환영합니다라는 클래스가 여기 볼 수 있습니다 및 작업 인덱스라는 함수가있다 그리고 그것이 무엇을하는 것은 안녕하세요 세계로 응답 본문을 설정합니다

코드가 기록되는 곳이다 또 다른 문제는 물론, 나는 가지 않았다이다 ㅋ, ㅋ, ㅋ, / 환영 / 인덱스입니다 내가 어떻게 여기까지 갔니? 글쎄, 그건 단순히 있기 때문이다 여기에 우리의 부트 스트랩 파일의 맨 아래에 우리는 우리의 경로를 설정 한 경우 당신은 그들이 당신을 위해 일부 기본값을 설정할 것을 볼 수 있습니다 기본 컨트롤러에 오신 것을 환영합니다 기본 동작은 지수입니다

우리가 거기에 아무것도 넣지 때 자동으로 시작 컨트롤러에 갔다 이유 인덱스 작업 모든 것은 지금까지 이해? 자, 당신은 컨트롤러로 이동보다 더 많은 일을 할 수 있습니다 특정 작업입니다 또한 컨트롤러 매개 변수에 전달할 수 있습니다 그냥 예를 들어, 난 당신을 보여주기 위해이 컨트롤러에 다른 작업을 추가 할거야 , 당신이 그것을 줄 당신이 무엇을 말하려고 있기 때문에 이제,이 작업 에코을 부르 자 그래서 나는 기본적으로 잡아거야 라우팅 프로그램에 나를 통해 전송 될 것 매개 변수, 당신은 여기에서 볼 수 있듯이, 이 라인은 바로 여기, 당신은 볼 수 있습니다 이것은 기본적으로 당신이 컨트롤러를 가지고 있고, 당신이 /가 의미, 그리고, 당신은 행동을, 그리고 다른 /이 그 매개 변수가 될 것, 그리고있어 우리는이 이름 ID를 가지고 있기 때문에 꺾쇠 괄호 안에, 그것은 우리가이 매개 변수의 ID를 명명하고 있음을 의미한다

나중에 내 컨트롤러 코드에서 내가 그 매개 변수의 보류를 잡아하려는 경우, 나는 내가 쓴 코드를 사용 ID라는 이름의 매개 변수를 찾을 수 있습니다 그게 내가 여기에 무슨 짓을했는지, 내가 돌아 말할거야, 그 "당신은 말했다" 그리고 지금은, 우리의 웹 사이트로 이동하는 경우 내가 CS50-kohana / 환영 / 에코로 이동 / Helloooo– 아, 맞아 내가 왼쪽으로 한 단계가있다 이 라이브 코딩 아이디어의 일부입니다

다음은 1 일입니다 어디 보자 그래서 일반적으로 이러한 웹 응용 프로그램의 많은 기본적으로 당신이 당신의 URL이 indexphp에 일을 포함해야 아이디어이기 때문에 indexphp에이 진입 점의 일종이다 응용 프로그램의하지만, 물론, 그 종류의 짜증나 가지고 있습니다

당신의 indexphp가 URL에 표시하고 싶지 않아요, 상자 밖으로와 거의 모든 웹 프레임 워크 이 indexphp에 문제가있는 그래서 당신은 그것을 제거 할 수있는 몇 가지 조치를 취합니다 그리고이 경우, 우리의 htaccess라는 파일을 사용하려고하는지 우리가 할 겁니다 것은, 이것은 아파치 웹 서버에 특정한 무언가이며, 그리고 재 작성하는 URL 등의 작업을 수행 할 수 있습니다 와, 등등 등등 URL을 리디렉션 및 Kohana 우리가 사용할 수있는 템플릿 htaccess로 파일을 제공 할만큼 좋다

당신이 볼 수 있듯이,이 examplehtaccess라는 파일이있다 우리는 htaccess로 해당을 복사하는 것입니다 나는이를 열고 편집 할거야, 기본적으로 서로 다른 것들을 잔뜩 않습니다 당신이보고 싶을 수도의 핵심 라인은 바로 여기에있다 이라는 규칙을 설정한다는 생각은있다 "그래, 당신이 무엇을 그에게 index

php를, 앞에 추가를 입력합니다" 당신은 그것을 볼 수 있습니다 * 아무 의미, 아무것도 일치 다음, 두 번째 부분은 $ 0 / indexphp를 인 와 $ 0 이전에 일치 된 무엇을 의미합니다

말이 돼? 하지만 변경할 정말 중요한 건이 재 작성 기준을 변경하고, 이는 URL 기지이다 당신이에서 작업하는 곳은 일종의 가정합니다 나는 그에게 CS50 Kohana를 추가하는거야, 이제 그 방법은 내가 indexphp를 제거하면, 그것은 작동한다, 나는 몇 가지 숫자를 추가 할거야 그것은 참으로 일했다 있음을 표시합니다 좋은 소리

질문 지금까지? [학생] 어떻게 123를 만들기 위해 알았 는가? 그게 인수인가? 정확하게 당신은 인수처럼 생각할 수 있습니다 하지만 이상한 점은,하지만, 방법 Kohana 그것을 않는다는 것입니다 그들이 정확히 인수처럼하지 않는 것입니다 이처럼 잡아해야합니다 당신은 요청 객체를 잡고 ID라는 것 매개 변수를 요청해야 그 이름 ID는 부트 스트랩 파일에서 온다 앞서 보였으며, 그 이름 ID는, 그 꺾쇠 괄호에 있었다 그것은 당신이 그 매개 변수를 잡아 방법입니다

신난다 다른 질문? 내가 말했듯이, 컨트롤러, 그들은, 애플리케이션 로직을 처리 당신이 that's– 볼 수있는 그래서 1 예이다 아주 기본적인,하지만 여전히 애플리케이션 로직이다, 매개 변수를 잡아 새로운 문자열을 만드는 아이디어 즉, "당신은 바보스런 일을했다"라고 한 다음에 그 뒤로 침 그리고 일반적으로 당신이하는 일은 서로 다른 컨트롤러를 만드는 것입니다 귀하의 웹 사이트의 다른 부분에 대해 별도의 컨트롤러를 만들 수 있습니다 오늘 우리는 아주 간단한 웹 사이트를 만들려고하고 아주 기본적인 블로그가 될 것

우리는 블로그의 게시물에 대한 새로운 컨트롤러를 만드는 것입니다 그러나 나는 또한 블로그 게시물에 주석을 추가한다면 나는 아마 그 의견에 대한 새로운 컨트롤러를 만들고 싶어한다 내가 사용자를 추가하고 싶었다면, 나는 아마 그 사용자를위한 새로운 컨트롤러를 추가, 그리고 일반적으로, 아이디어는 새로운 모델을 가지고 때마다 것입니다 당신이 상대하고있는 새로운 데이터 객체, 해당 데이터 객체에 대해 하나의 컨트롤러를 가지고있다 오늘 우리는, 1 데이터 객체로 작업하는거야 그리고이 글이 될 것 또한 당신은 테이블에 대응하는 것으로 데이터 객체 생각할 수 있습니다 일반적으로 각 테이블은 데이타 객체의 한 유형에 대응 그래서 포스트 테이블은 1 개 사후 모델이있을 것이다, 이는 1 개 포스트 컨트롤러에 대응 것, 과 의견, 등등 등등 누구나 같은과에 대해 동일합니다

그리고 엄지 손가락의 일반적인 규칙입니다 당신이 다를 수 있습니다 특별한 경우있을거야, 하지만 당신은 일을 할거야 무슨 시간의 90 % 그리고 나는 우리가 오늘 일을 할거야 무엇을 당신을 보여 드리죠 하나 개 더 개념은 우리가 코드로 다시 다이빙을하기 전에 객체 관계 매핑의 생각 너희들은 이미 웹 개발 PSET을 수행 한 당신은, 당신은 SQL 쿼리를 만드는 것을 본 적이 그것은 당신에게 반환 어떤 행입니다 당신은 어떤 이름으로이 행을 얻을하고 인덱스 그들 열 및 테이블의 이름, 당신이 그것으로 작동하는 방법과 그이야 그것은 조금 번거로울 수 있습니다

그러나 또한, 경우에 당신은 당신의 데이터베이스 내에서 관계를 같은 내가 의견과 게시물이있는 경우, 예를 들어, 어쩌면 내가 코멘트의 부모 포스트를 잡고 싶다 나는 SQL 단지 행을 사용하는 경우, 내가 얻을 수있는 모든 ID입니다 부모 포스트 아닌 실제 포스트 자체 우리가 코딩 할 때 그러나, 우리가 실제로 원하는 것은 실제로 잡아 것입니다 부모는 때때로 자신을 게시 할 수 있습니다 어떤 객체 관계형 매핑이하는 것입니다 그것은 데이터베이스 쿼리의 결과를 소요 와 작업하기가 훨씬 좋네요 당신을위한 객체로두고 일반 배열과 행보다 예를 들어, 지금은 아마도 주석이있을 때, 내가 부모 게시물을 잡고 싶어, 나는 어쩌면, 화살표 게시물을 언급 할 다음은 실제로 나에게 포스트 객체를 줄 것이다 실제 부모 포스트에 해당하지 그냥 ID, 이는 내가 다른 게시물을 잡기 위해 사용하고 다른 SQL 쿼리를 만들 것이다, 이는 귀찮고 불필요하다

그리고 또한, 개체로 모든 데이터 행을 매핑하여, 당신은 또한 객체에 더 많은 기능을 첨부 할 수 있습니다, 그래서 예를 들어, 나는 수업이 본질적 기능의 그룹입니다 방법에 대해 이야기했다 당신은 그런 식으로 생각할 수 있습니다 예를 들어, 어쩌면이 게시물 개체가, 어쩌면 내가 첨부 기능의 일종을 가지고 싶습니다 그 기본적으로 나은 최근 게시 알려줍니다? 참 또는 거짓, 그것은 지난 주에 게시 되었습니까? 그리고 내가 그 객체에 첨부 할 수있는 기능은이다 그것은 같은 장소에 그것을 가지고 정말 편리합니다, 당신이 만들 수있는 다양한 기능의 호스트가있다 이러한 개체에 대한, 그리고 클래스에 첨부 할 수있는 정말 좋은 데요, 객체에, 당신은 단지이 있다면 반면 행이 데이터베이스에서 오는, 당신은 정말 모든 기능을 첨부 할 수 없습니다 말 그대로 단지 데이터입니다 전혀 그것에 대해 질문? 으로 ORMs는 매우 일반적인 웹 개발입니다 그리고으로 ORMs의 다른 유형의 많이있다, 및 Kohana 자체 ORM있다

그것은 아주 기본적인,하지만 당신은 어떻게 생겼는지의 맛을 얻을 것이다 의 우리의 블로그 게시물에 대한 모델을 만들어 보자, 우리가 분명히해야 할 첫 번째 일은 실제 테이블을 만드는 것입니다 우리의 데이터베이스 내에서 실제로 그 게시물에 대한 우리의 데이터를 저장합니다 내가 할거야 우선 phpMyAdmin을로 이동합니다 너희들은 이전에 phpMyAdmin을 사용 했습니까? 좋아, 멋진, 그래서 너희들은 이미이 무엇인지, 내가 Kohana 게시물라는 새 테이블을 만들려고하고, 정말 간단 할 것입니다 나는 다시 로그인해야합니다

우리가 오늘 할거야 모든 저자와 몸을 가지고있다, 그냥 간단하게 그 테이블을 만들려고하고, 이제 우리는 우리의 게시물을 나타내는 테이블이 우리의 작가와 우리의 몸이 개 필드 내가 지금하기 위하여려고하고 다른 것은입니다 이 데이터베이스에 연결하는 방법을 알 수 있도록 내 웹 응용 프로그램을 구성, 이것은 다시, 당신은 모든 웹 응용 프로그램으로해야 할 것이다 무언가이다 당신은 그것을 사용자 이름과 암호를 말해야한다 그리고 등 등 데이터베이스의 이름 실제로 데이터베이스에 연결하는 방법을 알아낼 수 있습니다 Kohana, 우리는 데이터베이스 모듈이라는 것을 가지고 및 구성 폴더에 우리는 데이터베이스이라는 폴더가 당신이 볼 수있는 그리고, 설정의 무리가 여기에서 설정해야이 있습니다 사용자 이름과 암호 무엇을 이야기합니다 데이터베이스에 대한 그래서 실제로 연결할 수 있습니다

그리고 너희들이 실제로 알고 싶지 않기 때문에 사용자 이름과 내 데이터베이스의 암호 나는 이미 모든 설정 파일을 가지고 있고, 나는 복사하여 이상 붙여거야 신난다 괜찮아 나는 내가해야 할 모든 구성이라고 생각, 하지만 어디 보자 뭔가가 충돌하는 경우 우리는 그것에서 작업을 계속하고 있습니다 우리는 문제를 해결할 수 있습니다

이제 내가 할거야 것은 내가 새로운 컨트롤러를 만들려고하고있다 또는 실제로, 죄송합니다 우선 새로운 모델을 만들어야합니다 나는 Postphp라는 새로운 모델을 만들 수 있습니다 그리고 우리가 할거야 우리가 클래스 Model_Post를 호출하는거야입니다

일부 구문에 대한 강조 가져 오기, 내가 말할 때 등, "ORM가 확장,"그 기본적입니다 좀 더 객체 지향 프로그래밍, 이는 불행하게도 너희들은 아직 CS50에서 배운하지 않은 하지만 데리러 매우 쉽습니다 그것은 나에게이 ORM 패키지로 제공이 모든 추가 기능을 제공합니다 그래서 내가 무료로 추가 기능과 이것 저것 잔뜩 얻을, 이는 두 번째에 약간을 볼 수 있습니다 지금 실제로 내가 오직 할 필요가있는이 클래스를 만드는 것입니다 난 어떤 기능이나 아무것도 할 필요가 없습니다, 하지만 난 테이블을 나타내는 클래스를 만들었습니다, 나는이 ORM 클래스를 확장했기 때문에, 나는 무료로 물건을 잔뜩 얻을, 그래서 지금 당신은 아무것도 더 많은 위로를 설정할 필요가 없습니다 그리고 지금, 나는 새로운 컨트롤러를 만들려고하는 것입니다거야 무엇 내가 blog

php 이름을려고하는, 나는 시작 컨트롤러를 복사거야 그래서 나는 몇 가지 물건을 다시 입력 할 필요가 없습니다, 지금은이 이름을 변경해야합니다 지금은 확실히 모든 밖으로 작동하는지 확인하기 위해 테스트 할거야 무엇을, 내 데이터베이스에서 첫 번째 게시물을 잡아 갈거야 화면의 포스트의 몸을 인쇄 할 수 있습니다 내가 먼저 할거야 내가이 게시물을 저장하는거야 것을 수행하려면 우리는 일은 거야 그래서 어떤 변수 Kohana에 당신이하는 일은 포스트 개체를 잡아하는 것입니다 이 종류의 복잡하지만 당신이 ORM :: 공장이라는 일을해야한다, 그리고 당신은, 당신이 원하는 모델의 이름을 전달 그리고 그 모델을 나타내는 ORM 객체를 반환합니다

내가 말했듯이 그리고, 때 우리는 ORM 객체를 확장 우리는 무료로 모든 방법, 예를 들어, 그래서 얻을 우리는 "모두 찾을"라는 새로운 기능을 얻을 이는 자동으로 데이터베이스에있는 모든 단일 게시물을 반환 이는 매우 편리합니다 그리고 지금 몸에서 나는 돌아 갈거야 첫 번째 게시물과 몸을 반환합니다 그리고 물론, 내가 게시물을 작성해야합니다, 그래서 새로운 게시물을 삽입 할 수 있습니다 나는, "브랜든, 내 첫 번째 게시물을"말할 것이다 신난다

그리고 지금 우리는 블로그에 갈거야 모두가 잘 작동한다면 – 아, 이것은 다른 바보 파일 권한 것은 다시입니다 일초에 잡으십시오 그것은 부조리의 종류입니다 우리는 거기에 갈 괜찮아

나는 그 권한 문제를 해결 그것은 몇 가지 파일과 일부 로그를 만들려고했다, 그리고 권한을 다시 제대로 설정되지 않은, 그래서 그것을 만든 그래서 그 파일은 쓰기와 실행했다 그래서 실제로 일에 로그인 할 수 있습니다 지금은 나에게 또 다른 예외 말을주고 "클래스 ORM 찾을 수 없습니다" 나는 또 다른 단계를 잊었 때문에 그건 유감 이네요 부트 스트랩 폴더 파일에서 이러한 모듈은 여기에있다, 어떤 당신은 활성화 또는 비활성화 할 수 있습니다

이들은 당신이 사용하도록 선택할 수있는 다양한 기능의 무리입니다 종류의 좋은 Kohana, 내 예를 들면, 그들은 인증 모듈이 어떤 당신은 사용자를 인증하는 데 사용할 수 있습니다 구현하려는 경우 그들은 캐싱 모듈이 캐싱의 일종 다시 응용 프로그램 작업을 신속하고 이것 저것 할 끝난다 우리는 데이터베이스와 ORM 모듈을 활성화해야합니다, 내가 말했듯이 있기 때문에, 우리는 분명히 데이터베이스를 사용하고 우리는 또한 ORM 모듈을 활성화해야합니다, 우리가 가지고 좋은 추가 기능을 가지고 싶습니다 때문이다 내가 할 일은, 그 두 줄의 주석입니다 지금은 새로 고침하는 경우, 그것은 나에게 또 다른 오류를했다

그것은 "클래스 Model_Post 찾을 수 없습니다"라고 말한다 이제이 가지고 좋은 문제입니다 어디 보자 이 공개합니다 아니 잠깐

이런 이 것을 찾을 수없는 이유를 모르겠어요 그건 정말 이상하다 나는 바로 여기에이 클래스를 가지고있다 오 – 내가해야 할 수도 있습니다 것 같아요

난 너무 바보입니다 나는 PHP 태그를 추가하는 것을 잊었다 그 이유 지금은 그냥 행한 일 명 변경을 취소해야합니다 괜찮아

우리는 거기에 갈 그건 정말 바보였다 나는 여는 PHP 태그를 가지고 있지 않았다 당신이 볼 수 그러나, 지금은 오른쪽 제대로 작동이야? 우리는 1 개 게시물을 가지고있다 우리는 첫 번째 게시물을 잡고, 이제 우리는 몸을 인쇄

큰 환상적인 질문 지금까지? 아니? 질문? 좋아, 그래서 우리는 그냥 아주 기본적인 포스트 모델을 생성 우리는 나중에 일부 기능을 추가 할 것입니다 우리는 검증 및 필터링을 추가 할 수 있습니다 검증은 것들 중 하나입니다 프레임 워크는 정말, 정말 잘 당신을 위해 해결 것으로, 나는 너희들이 CS50의 PSET이 작업을 수행 할 수 있다고 생각하지 않습니다, 하지만 최종 프로젝트에 웹 개발을 할 경우, 당신은 가능성, 검증의 일종을하고 싶은거야 같은 빈 사용자 이름을 가지고 있지, 아마 적어도 일부의 길이, 그런 것들로 암호를 가진

그리고 그것은, 우리 자신에 의해 이러한 것들을 구현하기 정말 성가신 그리고 거의 모든 단일 웹 프레임 워크는 당신을 위해 그것을 않습니다 당신은 매우 깨끗한 방법으로 그것을 수행 할 수 있습니다 당신은 일반적으로 그 유효성 검사 규칙 표현 어디에 모델이며, 이 모델이 유효한지 여부를 확인하는 것 때문이다 하지만 지금, 우리는 나중에 때까지 넣어거야 그리고 지금 우리는 다른 부분에서 작동하는거야 우리가 시도하고 새로운 뷰를 만들려고하고 그 모든 게시물을 나열합니다 모든 게시물 목록에 대한 새로운 액션을하는 단계 모든 게시물의 목록을 잡아하는 것입니다 다음보기를 통해 모든 게시물의 목록을 렌더링합니다 바로 여기, 다행히만큼, 우리는 이미 모든 게시물을 잡고 이 첫 번째 줄을 사용하여 모든 기능을 찾을 수 있습니다, 지금 우리가하려는 것은 지금까지입니다 내가 직접 응답의 몸을 설정했습니다 문자열을 전달하여,하지만 지금은보기를 사용하려면, 와보기의 차이는 바로이 일을 나는 좋은, 큰 HTML 템플릿을 가질 수있는 전망되고, 그리고 내가 할 수있는 것은 그것에게 특정 변수를 전달하다 다음 자동으로 전망이 그 템플릿을 채 웁니다 이들 변수를 사용

내가 할거야 것은 내가 새로운보기를 만들 것입니다, 나는 ", 블로그 / 인덱스"와 같은보기 뭔가 이름을 수 있습니다 아, 내가 무엇을 쓰고 있어요 – 나는 기본적으로이 결합하는거야? 내 뇌는 다른 곳이다 내가보기에 게시물 변수를 바인딩하는거야 그래서 방법은 볼이 게시물 변수에 액세스 할 수 있습니다 그래서 지금은이보기를 작성해야합니다, 그래서 여기에 우리가이 폴더 불렀다 "보기" 먼저, 나는 그 전화에서 새 폴더를 만들거야 "블로그" 이거 좋다 그런 식으로 우리는 우리의 견해에 대한 좋은 계층 구조를 가질 수있다

그리고 나는 전화가 다른 파일을 만들거야 "indexphp를합니다" 신난다 사실, 이제 여기에 둘 다하자 뷰 파일을 만드는 것은, 아마 이것의 간단한 부분입니다 이들은 아마 당신이 익숙한 것들입니다

우리는 정말 간단한 일을 할 겁니다 말 시작 "블로그 게시물의 내 ​​목록입니다" 그런 다음 우리는 통과 할 수 우리는, 게시물의 배열을 반복 할 수 있습니다 모든 단일 게시물을 잡고 뭔가 말을 이렇게 어쩌면 줄을 추가 다음 작가와 몸을 인쇄 할 수 있습니다

확인 감각까지? 그리고 그것은 작동하는지 보자 아무 일도하지 왜 그런지 궁금합니다 아, 1 단계를 놓쳤다 나를 아주 바보

내가보기를 만들었지 만 나는 응답으로보기를 설정하지 않은, 그래서 당신은 한 가지 더해야한다 당신은 "이 응답 본문을"해야하고보기로 설정합니다 우리는 거기에 갈 우리는 우리의 제목을 가지고, 우리는 포스트를, 다만 차기를 들어, 다른 포스트를 삽입하자 그래서 우리는 목록을 볼 수 있습니다 그리고이이 글을 삽입, 지금은 페이지를 새로 고침하는 경우, 우리는 여기에 모든 게시물을 참조하십시오

즉, 지금까지 이해가 있습니까? 네, 질문? 좋아, 오 당신이 볼 수 있듯이, 우리는 이러한 코드를 분리 할 수있었습니다 다른 섹션으로, 다음은 뷰 코드를 가장 분명 볼 수 있습니다 보기를 나타냅니다 여기에이 파일, 그것은 단지 데이터를 표시, 데이터를 나타내는에 대한 관심 그것은 데이터 일종의 전달되는, 그리고이하는 모든 당신에게 보여 만한다 코드의 다른 모든 부분에서, 당신은 그 어떤 것도 걱정할 필요가 없습니다, 유사하게,보기 코드에 대해 아무것도 걱정하지 않습니다 방법 등 등 데이터베이스에 액세스하기 위해, 이는 정말 좋은 당신의 코드가 더 많은 유지 보수합니다

내가 말했듯이, 뷰, 그들은 그 동적있어 그것은 1 개 파일,하지만 서로 다른 뷰를 생성하는 것 당신이 실제로에 전달하는 변수에 따라, 나아가, 다른 헬퍼 기능이 많이 있습니다 당신은 당신이 더 빠른 코드를 작성하는 데 사용할 수있는, 어떤 난 그냥 두 번째 당신을 보여 드리죠 네 [학생] 그래서 $ 0 오른쪽 컨트롤러입니까? 그 두 번째 것은 문제는 $ 0 컨트롤러이다? $ 0 내가 바로 여기에 생성 된 변수입니다 내가 먼저보기를 만들었습니다

나는 몇 가지 변수에 할당 그런 다음,이 함수로 전달 응답 본문으로 설정 말이 돼? 클래스와 같은보기 [학생] 그래서보기 :: 공장,이다 또는 라이브러리 [들리지] 공장 기능? 문제는,보기 :: 공장 기능에 관한 것입니다 기본적으로이 본질적으로 좀 더 객체 지향 프로그래밍이다 "공장"보기 뷰 클래스이며,라는 방법이있다 그라는 것 오브젝트 잡을 수있는 방법이다 "블로그 / 인덱스를" 그리고 좀 더 객체 지향 프로그래밍 물건 너무 많이 여기에 갈 아니에요

이제 분명히, 우리는 새로운 게시물을 작성하려면, 하지만 우리는 데이터베이스를 통해 그것을 할 싶지 않아, 그래서 우리는 새 게시물을 작성하기위한 새로운 액션을 만들려고하고, 우리가해야 할 물건을 많이가있다 우리가해야 할 겁니다 우선 -의 하나가 이러한 것들을 하나를 해결하자 우리가 할 수 있습니다 첫 번째 것은 우리가 양식을 만들 수있어한다 새 게시물을 삽입, 그러나 나는 또한 먼저 새 작업을 추가거야 그래서 새로운 액션을 추가하는 것만큼이나 간단합니다 컨트롤러에 새로운 기능을 추가, 그리고 지금 나는, 아주 기본적인 일을 할거야 단지 당신을 위해 그것을 표시이보기를 잡고 그것을 게시 할 수 있습니다 그리고 지금은, 새로운 뷰 파일을 만들려고 나는 몇 가지 물건을 쓰기 시작하겠습니다 무엇 Kohana에 대한 좋은 것은 서로 다른 도우미 기능을 많이 제공하는 것입니다 더 쉽게보기 코드를 작성하기 위해, 그 도우미 함수 또는 헬퍼 모듈 1 서면 양식 주위에있다

양식을 작성, 난 정말 직접 HTML에게 자신을 작성할 필요가 없습니다 너희들은 HTML 양식을 작성했습니다 당신은 정말, 정말 고통스러운 형태를 쓸 번거로울 수 있습니다 방법을 알고있다 그것은, 다행히 재미없는, 그래서 우리는 기본적으로 사용 Kohana의 양식을 작성할 수 있습니다 양식 도우미 기능은 우리를 위해 그것을 할 수 있습니다 우리는 기본적으로 우리가 매일 일에 대한 필드를 할거야 그래서 저자 다른 하나는 몸 하나

우리는 라벨을 할거야, 우리는 입력이 될 것입니다 그리고 마지막으로, 우리는 제출이 될 것입니다 당신이 볼 수 있듯이,이 작성하기가 훨씬 더 깨끗 가지 좋은 모든 지저분한 HTML보다 허락하신다면, 그보다 더 깨끗한 그것을 가지고 다른 웹 프레임 워크가있다, 그러나 적어도이는 HTML 직접 작성하는 것보다 낫다 신난다는, 그래서 이것은 당신이 보는 것입니다

즉, 가지 지저분한입니다 그래서 나는 거기에 줄 바꿈을 추가 할거야 그 조금 더 좋은 보이게합니다 음, 물론, 그것은 여전히 ​​정말, 정말 나쁜 보이지만, 우리는 단지 초점을 맞추고있어 지금이 아니라 미학에 대한 기능에 시간은 모든 것을 할 수 없습니다 당신이 볼 수 있듯이, 지금 우리는 매우 기본적인 형태가 어떤 종류의 좋은입니다 내가 말을이 코드는 HTML 자신을 형성 작성하는 것보다 깨끗 그래서 좋은입니다

무엇 향후 계획? 이제 우리는 행동과 일을 할 필요가있다 일반적으로 사용자가 HTML 양식을 작성할 때, 당신은에 양식을 제출 것 곳을 이야기해야합니다 대부분의 웹 프레임 워크에서 기본적으로 물건은 그래서는 동일한 URL에 제출 당신이 / 블로그 / 새에 GET 요청을 보내는 경우, 그것은 당신에게 양식을 표시해야합니다, 하지만 데이터와 새 / 블로그 /에 POST 요청을 보내는 경우, 실제로 해당 게시물을 저장하려고한다 그것으로 뭔가 우리가 할 겁니다 것은 기본적으로 우리 모두는 POST 요청 또는 가져 오기 요청의 여부를 확인하기 위해해야 ​​할 일 설정할 수있는 포스트 변수가 무엇인지 확인하는 것입니다 포스트 변수가 설정되어있는 경우에, 우리는 시도하고 새 게시물을 작성하는 것입니다

다시 말하지만, 우리는 그냥 이렇게, 그것은 새 게시물을 작성하고, 우리는 문자 그대로 갈거야 이런 식의 필드를 설정, 그리고 우리는 그것을 저장하는 것입니다 그리고 나는 재거야 인덱스 페이지로 그들은 다시 글의 목록을 볼 수 있습니다 의 그 해보자 나는 ", 브랜든"라고 말할 수 있습니다 모두가 잘된다면 다음, 게시물을 제출하고 당신이 볼 수 있듯이, 그것은, 인덱스 페이지로 나를 리디렉션 나는 아래로 스크롤 경우, 우리는 새로 삽입 한 후이있다 야호! 네, 질문입니다

당신이 똑같은 일을 입력 한 경우에는 어떻게 [학생] 당신은 이전에 입력? 그것은 당신이 중복되지 않은 확인하십시오 않습니다 같은 제출? 때문에 default–에 의해, 기본, 아니 수 양식에서 동일한 데이터를 입력하면 죄송합니다, 질문은 그리고, 당신이 중복 개체를 삽입 할 수 있습니다, 그 제출 본질적으로 항목을 중복? 지금, 그래, 당신이 그렇게 할 수 있습니다, 데이터베이스에 완전히 중복 행이 완벽하게 유효 왜냐하면 즉 문제가되는 경우 그러나, 당신은, 예를 들어, 검증을 추가 할 수 있습니다 확인이 정확하게 이미 무엇인가와 같은 경우가, 다음은 잘못된 객체의 말, 그리고 당신은 당신의 오류 메시지를 지정할 수 있습니다 "이 이미 존재하기 때문에 잘못된을"또는 그런 뭔가 말 그러나이 경우에, 난 그냥 뭔가 중복을 만들 수 있습니다 이제 시도하고 몇 가지 검증을 추가 할 수 있습니다 이 권리의 문제는 지금이다 말 그대로 완전히 빈 포스트를 제출할 수 있습니다 지금은이 버튼을 클릭하면, 거기 우리는 간다

당신은 정말이 필요없는 줄 여기에 그것을 볼 수는 없지만 말 그대로 새 게시물이 있음을 나타냅니다 그냥 빈 저자 및 빈 몸을 가지고, 우리는 사람들이 그렇게하는 것을 허용하지 않습니다 검증이 들어오는 곳이다 나는 나의 모델 객체에 갈 수 지금은 지정하는 새로운 기능을 추가 할 수 있습니다 어떤 검증 규칙 나는이 모델에 추가한다 이 유효한지 확인하거나 유효한 게시물을로 의미 하는가 작업을 지정? 그리고 나는 경우에만 유효한 포스트 말하고 싶은 모두 저자와 몸 빈 아니며, 이것은 당신이 Kohana에 그것을 할 방법이다 당신은 "규칙"이라는 새로운 함수를 생성 다음은 기본적으로 연관 배열을 반환 즉,이 개체에 대한 유효성 검사 규칙을 정의합니다

우리는 배열을 반환하는 것, 그리고 우리가 할 겁니다 것은있어 그것은 배열에 간다 "저자"라고 이는라는 또 다른 배열에 간다 "비어 있지" 그리고 내가 말할거야 "몸을" 이 본 구조 괜찮 및 구문 조금 불편하고 조금 복잡하게 보일 수 있습니다 당신이 문서를 읽는다면, 그것은 알아 내기 위해 매우 간단합니다, 그러나 본질적으로 이것은 당신이 지정해야 할 것입니다 일부 유효성 검사 규칙은 다른 규칙을 많이하고있다 당신이 말하는 규칙을 추가 할 수 있습니다 같은 Kohana은 무료로 당신을 줄 것이다 그것은이 길이 이상이되어야합니다 아마 숫자이어야합니다

아마 알파 숫자이어야합니다 어쩌면 등등 등등 대부분이 길이이어야한다 Kohana 당신을 위해 제공하는 다른 규칙 많이 있습니다, 당신은 자신의 웹 사이트에 갈 수있는, 문서를 보면, 당신은 당신이 할 수있는 모든 다른 것들을 볼 수 있습니다 그러나 이것은, 내가 할 일은이다 지금의이 어떻게되는지 보자 나는 빈 게시물을 제출합니다 어떤 일이 일어날? 아, 아니, 나는 오류가 발생합니다

나는 유효성 검사 예외를 얻을 음, 좋아 그것은 내 모델이 무효라고 나에게 말했다 하지만 난 예외를 표시하지 않으 내 사용자들에게 그들이 바로, 유효하지 않은 뭔가를 제출하려고 할 때? 나는 그들에게 우호적 오류 메시지의 일종을주고 싶어 때 뭔가 잘못 간다 우리가하려는 것은 우리가가는 것입니다 시도 캐치 루프의 모든 포장 사실, 난이도 아직 배운하지 않은 뭔가 생각 CS50에서, C 때문에, 프로그래밍 언어 C, 예외지만, 거의 매일 다른 언어를 가지고 있지 않습니다 그래서 정말, 정말 간단하게, 예외가 예외는 코드 조각이 할 수있는 무언가이다 일이 잘못되면 예외를 발생, 최대하지만 코드 어쩌면 다른 조각 이상 그 예외를 잡아 그것으로 뭔가를 할 수 있습니다

예를 들어,이 경우, 모델을 저장하려고 코드의 조각, 이 모델의 유효성을 검사하고 말한다면, "좋아,이 모델은 무효" 예외를 던질 것, 이것은에 가지와 동일 C에서 당신은 그런 -1 또는 무언가를 반환 할 수 있습니다 그리고 나를 위해,이 기능, 내 코드 높은 수준에서, 나는 시도하고 그 예외를 잡을 수 있습니다 기본적으로 "나는 예외를 잡으면 좋아, 무엇을 내가 할 것입니까?"라고 아니면 내가 그 예외를 잡을 최대 누군가가 더 들어 가지 않도록 선택할 수 예외를 catch, 또는 아무도 그것을 캐치하지 않는 경우, 다음 전체 프로그램이 충돌하고 말한다, "문제가 발생했습니다, 나는 그것을 처리 할 수 ​​있습니다" 그러나 우리가 할 것은, 당신이 try 블록의 코드 조각을 포장입니다 다음은 또한, catch 블록이라는 것을 추가 어떤 시도하고 발생할 수있는 예외를 잡을 것입니다 코드의 일종이다 그래서 나는이 예외를 잡을 경우 또는 무효 예외는, 내가 할거야 후 어떤 것은 내가 오류를 설정하는거야 – 나는 내가 그건 을 어떻게 생각 나는 어떤 객체에 오류를 설정하는거야 그리고 내가 수행하는 것이이 예외를 안타되어 가고있는 무슨 이 리디렉션하지 않는 경우는, 리디렉션하는 것, 그리고 아니에요 경우 블로그에서 나오는 것 그리고 내가하고 싶은 원하는 새로운이 블로그를 /이다 명중한다 오류가있을 경우, 그때 폼에 다시 가고 싶어 그 오류를 표시합니다 이제 내가 원하는 내가 그 오류를 전달하려는 것입니다 보기에

좋아, 내가 바로 여기보기를 생각, 기본적으로 나는 그들이 존재하는 경우 그 오류를 표시합니다 내가 그에 대한 HTML을 작성하기 전에, 정말 빨리 갈거야 보여 어떤 변수 외모 등이 오류의 구조, 이것은 일반적으로 좋은 방법입니다 많은 시간 당신은 몇 가지 방법에서 다시 뭔가를 얻을 웹 프레임 워크의 일부 기능, 당신은, 변수가 어떻게 생겼는지 모른다 그래서 당신은 그것을 작동하는 방법을 모르겠어요 나는 기본적으로 그것을 밖으로 인쇄 할 인쇄 연구 방법을 사용하도록하겠습니다 당신이 볼 수 있듯이, 그것은, 그것은 연관 배열의 나에게 말한다 당신은, 키가, 저자,이 문자열을 가리키는이 저자는 비어, 그리고 안 다른 키, 몸, 다른 문자열에 포인트, 몸은 비워 둘 수 없습니다

나는 멋진, 좋아, 좋아입니다 그럼 난 배열을 통해 반복하고 모든 단일 메시지를 인쇄 할 수 있습니다 이 메시지의 무리와 함께 연관 배열처럼 기본적이다 내가 할거야 "를 오류의 경우,"입니다 나는 정렬되지 않은 목록을 만들거야, 나는 모든 오류를 반복하겠습니다 그리고 이것은, 지금은, 다시 제출하려고거야 그리고 이제 우리가 무엇을 얻을 보자

이제 우리는 오류의 좋은 목록을 가져, 이것은 여전히 ​​매우 추한이지만, 이것은 분명 좋은보고 포맷 할 수 있습니다 하지만 기본적인 아이디어는, 단지 몇 줄의 코드에 우리는 우리의 모델을 검증 할 수 있었다 특정 필드가 비어 있지했다 있는지 확인 뭔가 잘못된 경우 다음 오류 메시지가 어떤 종류의 반환 나는 다음 사용자에게 다시 제공 할 수있다 또한 유효성 검사를 사용자 정의 할 수 있습니다 그래서 당신은 실제로 오류 메시지가 가질 수 즉, 응용 프로그램 또는 그런 일에 더 구체적이다 모든 것은 일반적으로 사용자 정의 할 수 있습니다 불행하게도, 우리는 시간이 부족하고, 그래서 나는 여기에 라이브 코딩 세션을 차단해야 할거야 내가 당신을 위해 설명 할 다른 기능의 무리가 있습니다 이 예이다

예를 들어, 당신이 당신의 위치에 템플릿을 추가 할 수 있습니다, 그래서 아마 적용 할 HTML 코드의 일종이있다 귀하의 사이트에있는 모든 단일 페이지에 대신 붙여 넣기의 분명히 나쁜 관행이 될 것입니다 당신이 가지고있는 모든 단일 뷰 파일에서, 당신은 기본적으로 이러한 템플릿을 정의 할 수 있습니다, 다음 컨트롤러에 "좋아,이 템플릿을 사용하고 있습니다"라고 "내 모든 전망이 템플릿을 사용하게한다" 그리고 내가 원하는 마지막 것은뿐만 아니라 당신에게 보여주기 위해 크로스 사이트 스크립팅입니다 위해 우리가 시간이 없다고, 기본적으로 나는 너희들은 아마 CS50–에서 본 생각 나는 데이빗 말란 아마 당신은 일반적으로 주입 할 수있는 방법에 대해 이야기 생각 자바 스크립트 코드로 – 당신은이에 대해 얘기했다? 아마도? 아마? 그러나 많은 시간 당신은 악성 자바 스크립트 코드를 삽입 할 수 있습니다 누군가의 데이터베이스에, 그들이 제대로이 탈출하지 않는 경우, 그 때, 사용자에게 다시 그 데이터를 표시 할 때, 다음, 당신은 일하지 않으려는 임의의 자바 스크립트 코드의 일종을 실행할 수 있습니다 그리고 당신이 Kohana 내에서 그렇게 할 것입니다 방법을 설명하려고했다 정말 쉽게, 정말 사실입니다 말 그대로 이초에서 지금 그것을 할 수 있습니다

당신이 기본적으로이 일을 마무리하기 만하면됩니다 이 일에 HTML 엔티티를했다 그리고 제대로 모든 문자를 이스케이프 자동으로됩니다 당신이이 문제를 얻을하지 않습니다 있는지 확인하십시오 [학생] 당신은 잘못 첫 번째 테스트를 철자 [브랜든 리우] 아, 죄송합니다 좋아, 내가 오늘 당신과 함께 공유했다 전부입니다

이 슬라이드를 게시하려고하지만, 이들은 일반적으로 당신이 정말로 필요로한다 유일한 자원은 Kohana를 시작합니다 당신은 웹 사이트로 이동 할 수 있습니다 그들은 사용자 가이드를 가지고 있고, 그들은 또한 API 탐색기가 있습니다 우리는 그들이 당신을 위해이 모든 다른 기능과 도우미 기능을 탐색 할 수 있습니다 그들은 일반적으로 웹 사이트에 대한 충분한 정보를 가지고 그게 당신이 시작하는 데 사용하고 Kohana로 갈 수 있습니다

많은 수 없습니다 튜토리얼 내가 외부에서 Kohana에 대한 생각이 있습니다 그들이 여기 웹 사이트에있는, 그래서 이것은 아마 당신의 최선의 방법이다 하지만 당신은 웹 프레임 워크로 이동하려는 경우 당신은 새로운 언어를 데리러하고 싶지 않아요, 당신은, 상대적으로 가볍고 쉬운 학습 곡선을 가지고 뭔가를 원하는 나는 확실히 Kohana을 제안합니다 그건 아마위한 최상의 제공합니다 우리는 루비 온 레일즈를 사용한다면 재미있는 것은, 그러나,이다 우리가 무슨 짓을했는지 우리는 복제 된 수 3 분 이내에에서 아마 더 루비 온 레일즈 학습 농담,하지만 더 많은지지 않습니다 보다가 Kohana을 배울 걸릴 것이다

그것은 당신이 배우를 선택하려는 작업에 기본적으로 당신의 선택이다 하지만 당신이 신속하게 실행을 원한다면, Kohana은 확실히 아주 좋은 선택입니다 모든 마지막 질문에 우리가 종료하기 전에? 예 [학생] 우리가 어떻게 통합 할 것 당신이 지시 한 경우 CSS 프레임 워크에서 당신이 사용하는 것처럼? 우리는 CSS 프레임 워크 것을 통합 얼마나 문제는? 우리가 아마 할 것 우리가 아마 포함 할 것입니다 우리는 우리의 모든 CSS 파일을 덤프하는 새로운 폴더, 그리고 우리는 또한 새로운 템플릿을 추가 할 것입니다 템플릿에서 우리는 그 CSS 파일을 포함 것 그들은 모든 단일 페이지에서 참조하고 있는지 확인하기 위해, 다음 때 당신은 실제로 HTML을 작성, 당신은 적절한 클래스와 이것 저것을 추가 예를 들어, 폼 같은 것을 사용할 때 도우미 기능, 당신은 나중에 더 많은 매개 변수를 추가 할 수 있습니다 다양한 사물에 부착하고 싶은 클래스 지정 그래서 그들은 제대로 스타일을 수 있습니다, 그것은 기본적으로 당신이 갈 것입니다 방법입니다 다른 질문? 신난다

시간 내 주셔서 감사하고와 주셔서 감사합니다 나는 매우 다른 추가하지 않을했다 하지만 1 개 정말 빠른 것은 우리가 링크가없는 것입니다 양식 정말 바보 실제로보기, 블로그, 인덱스에 -의은을 추가하자 의 정말 신속하게 새로운 페이지로가는 링크를 추가 할 수 있도록, 우리는 새 게시물을 삽입 할 수있는 페이지 우리는이 작업을 수행 할 것입니다

어떤 좋은 것은 HTML 도우미 기능이 전체 그룹이있다 이미 실체를보고, 그래서 당신을 위해 다른 일을하는 여기에 기능을하지만, 그들은 또한라는 함수가 "앵커" 당신은 / 새 블로그를 입력 할 수있는 그리고 "새로운 블로그 포스트"라고 그리고, 당신을 위해 링크를 만들 것 그리고,이 할 정말 사소한 것, 그러나 이것은 좋은 당신이 다른 한 도메인에서 귀하의 웹 사이트를 이동한다고 가정하기 때문이다 그리고 당신은, 자신의 URL을 쓴 경우 당신은 모든 URL을 변경해야합니다 아니면 다른 하위 폴더 (1 개) 하위 폴더에서 이동 당신은 모든 URL을 직접 변경해야 할 것입니다, 그것은 재미 없다

당신은 바로 여기이 앵커를 사용할 수 있습니다 당신은 도메인 또는 하위 폴더 접두사를 변경할 수 있습니다 구성 파일에 한 번, 다음은 사방이 적용됩니다, 이것은 다시이며, 의 좋은 예는 코드를 건조, 자신을 반복하지 않는다 당신이 자신을 반복하고 어디든지 시도하고 구성 파일의 일종에서 추출 또는 다른 기능을하고 당신을 위해 처리합니다 그리고 내가 원하는 맨 마지막 것은 당신이 있었다 보여 우리는이 게시물에 돌아왔다 가정, 난 정말 긴 에세이를 구성했다, 하지만 내 저자를 포함하는 것을 잊었다 지금은 "포스트 제출"을 클릭하면 난 그냥 모든 것을 잃었다 아니! 정말 슬픈

그렇다면 그 처리합니까? 이것은 우리가하는 일입니다 우리가하는 일은 이러한 입력 텍스트 영역 기능을 위해 여기에있다, 우리는 두 번째 매개 변수, 즉 두번째 파라미터의 다음 값을 포함하면 필드가 처음으로 채워 될 무슨 일이 될 것입니다 우리가 할 수있는 것은, 우리의 블로그 컨트롤러에 우리는 또 다른 변수를 바인딩 할 수 있습니다 어쩌면 "값"을 호출합니다 그리고 문자 그대로, 후 배열에 전달합니다

즉, 유효성 검사가 실패하면 것을 의미한다 나에게 내가 마지막 요청에서 제출 한 후 배열을 전달, 그 방법은 내 마지막 제출의 값을 사용할 수 있습니다 필드를 다시 채워야합니다 지금은 값 저자처럼 뭔가를 할 수 내가 어떤 임의의 물건을 할 경우 지금 몸, 그리고 그런 식으로 값 그리고 거기 유지 "후 제출"을 클릭합니다 그러나 우리는 또 다른 문제로 실행하는 것입니다 내가 페이지에 처음으로 갈 경우 즉, 작동하지만, 이 충돌 것, 그리고 그건 난생 처음으로 인해 우리는이 게시물에 변수가 아직 정의되지 않은 페이지로 이동합니다 그것은 널 (null)입니다

그것은 존재하지 않습니다 이 키가 존재하는 경우 그리고 우리가 말하고 싶은 것은,이다 다음,이 배열의 값을 반환 키가 존재하지 않는 경우하지만, 다음 빈 문자열을 반환합니다 즉 우리가 여기에서 원하는 기능입니다 우리는 키가 배열에 접근하기 전에 존재하는지 확인하려면 다행히만큼, Kohana은 우리에게 그것을위한 도우미 기능을 제공합니다 그들은 기능의 전체 제품군을 가지고 이름 ARR 아래 배열 짧고 그들은 "수"라고 한 기능을 가지고 당신은, 배열에 전달할 수 있습니다 당신은 키의 이름으로 전달할 수 있습니다

그리고 기본적으로 무엇을 할 것 것은, 그것은 그 키를 얻기 위해 노력할 것입니다 하지만 키가 배열에 존재하지 않는 경우, 다음은 빈 반환, 또는 우리는 또한 기본을 지정할 수 있습니다, 나는 믿는다 어떤 좋은 것입니다 이제 우리는 다시 같은 일을 할 경우, 다음은 주위 처음 작동 이제 참조 다시, 우리는 어떤 임의의 물건을 입력하면 그리고 거기 유지, 시도 및 제출합니다 그리고 나는 방법도 정말 빨리 템플릿을 추가하는 방법을 보여줍니다 같아요 우리가 먼저 할 수있는 일은 우리가 "templatephp"라는 새로운보기를 추가 할 수있다 뷰 폴더 내에서, 그리고 내가 할거야 것은 "내용"나는라는 뭔가를 인쇄 할거야입니다 이는 내 주요 컨텐츠가 될 것입니다

그리고 어쩌면 맨 아래에 나는, 말, 추가거야 저작권 [들리지 학생 질문] [브랜든 리우] 어쩌면 이것은 내가 사용하려는 슈퍼 기본 템플릿입니다 나는 모든 한 페이지에 내 저작권이있는 폴더를 갖고 싶어, 지금은 내 컨트롤러 내에서 할거야 무엇을 "컨트롤러를 확장"대신 말의 지금 나는 "Controller_Template는 확장"라고 말할거야 지금은 대신 "는 응답 본문이보기 같다"며 나는 말할거야 "이 템플릿의 내용은 -" 내가 생각 – 내가 등호를 넣을까요? 잊었다 그래, 나는 그렇게 생각했다 그리고 지금은 내용 변수보기를 동일하게한다는 설정합니다

여기 동일한 기능을 수행 할 수 있습니다 내가 새로 고치면 그리고 지금, 당신은 지금이 저작권이 추가됩니다 볼 수 있습니다 그냥 어떤 임의의 게시물을 확인, 다음, 다시, 당신은 저작권이 페이지의 맨 아래에있는 것을 볼 수 있습니다 큰 그게 내가 너희들을 보여주고 싶었 전부입니다 [박수 갈채] 질문? [CS50

TV]