iT邦幫忙

1

Codeigniter將routes的default_controller改掉就會出錯

  • 分享至 

  • xImage

程式範例參考網址:http://mbahcoding.com/php/codeigniter/codeigniter-server-side-ajax-crud-modal-validation.html

這個範例是將頁面設成default_controller
如果按照他的原本設定,是可以正常執行的,他將這個範例變成首頁
$route['default_controller'] = 'person';

但是這個範例對我而言,當然不可能是首頁,只是其中一個功能而已
可是如果我直接將default_controller改回預設值
$route['default_controller'] = 'welcome';

就會出現像附圖那樣的錯誤.....

請問該如何修改才能夠正常顯示呢?

fillano iT邦超人 1 級 ‧ 2016-03-03 18:04:53 檢舉
附圖在哪?
不知道為什麼,上傳圖片會不見,已經補圖了~
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2
fillano
iT邦超人 1 級 ‧ 2016-03-03 19:26:26
最佳解答

看了一下,跟$route應該沒關係。

問題出在Person_model.php,裡面有幾段會判斷$_POST["search"]["value"]是否有值,不過通常操作時應該都不會有(連$_POST["search"]都沒有,就不要說後面的2東西),所以跑出這個「Notice」。

Notice通常只是用來提醒用的,並不是錯誤。如果覺得干擾,可以透過php的設定讓他不會直接在頁面跑出來。當然,你也可以想辦法把它清掉。

看更多先前的回應...收起先前的回應...

我一開始也以為和route沒有關係,就是依照你提的思路這樣去逐一修正,但是最後發現,從model拋到controller,再拋到view裡面的資料,view的ajax會拿不到,出現另一種錯誤,但是我直接把拋出去的資料在view上面印出來,確實是有拿到的。
直接下載範例網址裡面的檔案,程式碼是一樣的,在完全不做任何修改的情況下,本機上也是可以正常執行的,後來我從JS裡面去爬,發現裡面是有search欄位的,就是不知道為什麼,如果改了route,就會直接死給我看.....

weiclin iT邦高手 4 級 ‧ 2016-03-04 03:33:40 檢舉

你為什麼要直接瀏覽 index.php/person/ajax_list 這個頁面呢?
這邊看起來是給 ajax 用的 api, 而且預期會有 post 資料
就算沒有改 route 也一樣會噴這些訊息給你看

weiclin iT邦高手 4 級 ‧ 2016-03-04 03:34:17 檢舉

你直接瀏覽的話

weiclin提到:
就算沒有改 route 也一樣會噴這些訊息給你看

fillano iT邦超人 1 級 ‧ 2016-03-04 08:05:22 檢舉

答案如上述,感謝weiclin...

fillano iT邦超人 1 級 ‧ 2016-03-04 08:09:21 檢舉

另外,如果你瀏覽index.php/person時,index.php/person/ajax_list這個request是DataTable這個jquery plugin自己送出的,所以該有的參數都會帶上。

fillano iT邦超人 1 級 ‧ 2016-03-04 08:16:30 檢舉

感謝fillano大大的說明,真的給了我很大的幫助!!開心
我會一直想要去call ajax_list這個頁面,是因為CI在呼叫其他頁面時的結構是這樣的....index.php/Controller/Views,所以一直沒有往直接呼叫Controller而不指定view的方向去思考....倒
這是我原本想要套用這個範例的後台
如圖:https://drive.google.com/open?id=0B5UPfJ72YnFQY1pSMjZKd0NEM1k

我原本的目標是一個Controller裡面可能會有多個這樣的table,但是以範例看起來,應該是一個Controller只能有一個table,如果要多個的話,可能還得再想想....倒

我要發表回答

立即登入回答