質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CodeIgniter

CodeIgniterは、PHP向けオープンソースのWebアプリケーションフレームワークです。CodeIgniterは覚える構文が少なく、自由度も高いため、PHPを理解していれば構築が簡単です。

Q&A

解決済

1回答

12814閲覧

CodeigniterのURLを開いた時のコントローラ実行ができない

A.siro

総合スコア7

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CodeIgniter

CodeIgniterは、PHP向けオープンソースのWebアプリケーションフレームワークです。CodeIgniterは覚える構文が少なく、自由度も高いため、PHPを理解していれば構築が簡単です。

0グッド

1クリップ

投稿2017/10/28 15:58

編集2017/10/28 22:27

###前提・実現したいこと
PHP + codeigniterでWEBアプリケーション開発をしたいと思っております。
まずはMVCを理解するために、Viewからコントローラを呼び出す処理を実行したかったのですが、
コントローラを呼ぶ方法がわかりませんでした、、、

初歩的なな質問で申し訳ありませんが、宜しくお願い致します。

###発生している問題・エラーメッセージ
404でエラーが出ます。

The requested URL /WebScraping/Home/lancers was not found on this server.

###階層
イメージ説明

###routes.php

php

1$route['default_controller'] = 'home_ctrl'; 2$route['lancers'] = 'lancers/index'; 3$route['404_override'] = ''; 4$route['translate_uri_dashes'] = FALSE;

###Home_ctrl.php コントローラ

php

1<?php 2defined('BASEPATH') OR exit('No direct script access allowed'); 3 4class Home_ctrl extends CI_Controller { 5 6 /** 7 * Index Page for this controller. 8 * 9 * Maps to the following URL 10 * http://example.com/index.php/welcome 11 * - or - 12 * http://example.com/index.php/welcome/index 13 * - or - 14 * Since this controller is set as the default controller in 15 * config/routes.php, it's displayed at http://example.com/ 16 * 17 * So any other public methods not prefixed with an underscore will 18 * map to /index.php/welcome/<method_name> 19 * @see https://codeigniter.com/user_guide/general/urls.html 20 */ 21 public function index() 22 { 23 $this->load->helper('url'); 24 $this->load->helper('form'); //フォームヘルパーのロード 25 $this->load->helper('html'); 26 $this->load->view('home_view'); 27 } 28 public function lancers() 29 { 30 $this->load->view('lancersNew_view'); 31 echo "テスト"; 32 } 33}

###lancers.php コントローラ

php

1<?php 2defined('BASEPATH') OR exit('No direct script access allowed'); 3 4class lancers extends CI_Controller { 5 6 /** 7 * Index Page for this controller. 8 * 9 * Maps to the following URL 10 * http://example.com/index.php/welcome 11 * - or - 12 * http://example.com/index.php/welcome/index 13 * - or - 14 * Since this controller is set as the default controller in 15 * config/routes.php, it's displayed at http://example.com/ 16 * 17 * So any other public methods not prefixed with an underscore will 18 * map to /index.php/welcome/<method_name> 19 * @see https://codeigniter.com/user_guide/general/urls.html 20 */ 21 public function index() 22 { 23 $this->load->helper('url'); 24 $this->load->helper('form'); //フォームヘルパーのロード 25 $this->load->helper('html'); 26 $this->load->view('lancersNew_view'); 27 28 echo "テストじっこう";// 29 } 30}

###試したこと
ここのサイトを見てroutes.phpを直したりコントローラを直してみましたが改善せず、、、
もしかすると変更後サーバー再起動 (MAMP環境再起動)しないといけないなどあるのかどうか、、、

###環境
php:7.1.5
codeigniter:3系
実行環境:MAMP3.3.1

知見のある方、宜しくお願い致します。

###2017/10/29 情報追加
'WebScraping/Home/`にアクセスすると、ホーム画面は表示されます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ykws

2017/10/28 16:39

`/WebScraping/Home/` にアクセスしてデフォルトのホーム画面は表示されていますか?
A.siro

2017/10/28 22:27

ykws様 ホーム画面は表示されます。
guest

回答1

0

ベストアンサー

下記の設定だとした場合

php

1$config['base_url'] = 'http://localhost/WebScraping';

下記の設定により
http://localhost/WebScraping
にアクセスした場合
http://localhost/WebScraping/home_ctrl/index
へのアクセスとしてCodeigniterが処理します。

php

1$route['default_controller'] = 'home_ctrl';

http://localhost/WebScraping/lancers
にアクセスした場合
http://localhost/WebScraping/lancers/index
へのアクセスとしてCodeigniterが処理します。

php

1$route['lancers'] = 'lancers/index';

今回の
/WebScraping/Home/lancers
へのアクセスですが、routeや.htaccessに別の設定がなければ
Homeコントローラーのlancersメソッドが呼ばれます。

/WebScraping/Home/lancers
のURLにしたい場合は
Home_ctrl.phpをHome.php
Home_ctrlコントローラーをHomeコントローラーに変更すれば呼ばれます。
その際はdefault_controllerも修正してください。

投稿2017/10/29 03:00

u-ta

総合スコア60

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

A.siro

2017/10/29 09:55

ありがとうございます! 現在出先のため、戻り次第確認させていただきます!!!!
A.siro

2017/10/29 14:52

確認しましたが、まだ動きませんでした、、、 「The requested URL /WebScraping/Home/lancers was not found on this server.」 というエラーが出ます。 routes.phpに以下記述 $route['default_controller'] = 'home'; //コチラはhome_viewから修正しており、view名も変更済みです $route['lancers'] = 'lancers/index'; //新規追加しました その後コントローラに「Lancers.php」を追加し、以下index処理のみ記述 <?php defined('BASEPATH') OR exit('No direct script access allowed'); class Lancers extends CI_Controller { /** * Index Page for this controller. * * Maps to the following URL * http://example.com/index.php/welcome * - or - * http://example.com/index.php/welcome/index * - or - * Since this controller is set as the default controller in * config/routes.php, it's displayed at http://example.com/ * * So any other public methods not prefixed with an underscore will * map to /index.php/welcome/<method_name> * @see https://codeigniter.com/user_guide/general/urls.html */ public function index() {    $this->load->helper('url');    $this->load->helper('form');    $this->load->helper('html');      $this->load->view('lancers'); } } さらに、「lancers.php」という名前のViewを用意し、 http://localhost/WebScraping/Home/Lancers/ にアクセスしましたが、エラーとなりました、、、 http://localhost/WebScraping/Home/を開くと想定通り、home.phpが見えております。 大変お手数ですが、上記何か間違っている設定や書き方等ございますでしょうか・・・? お時間あるときで良いのでアドバイスいただけると助かります。。。
A.siro

2017/10/29 15:10

さらに調べたところ以下がわかりました。 「http://localhost/WebScraping/Home/index.php/Lancers」 コチラにアクセスすると動きました!!!! ※cssがなぜか読み込めていなかったですが、画面は表示されました 「index.php」をルートから消す?設定をすれば行けそうな気がするので、もう少し調べてみます。
u-ta

2017/10/30 05:34

最後の最後でお力になれずすみませんでした。 $config[‘index_page’] = ”; が未設定だったようですね、回答に漏れていました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問