佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1670|回复: 23

codeigniter 专家在吗???

[复制链接]
发表于 21-4-2016 03:31 PM | 显示全部楼层 |阅读模式
刚刚开始用codeigniter, 学了很多东西,blur blur 底的东西也很多。。。
想问这里有没有专家会的?可以帮我回答几道问题吗?
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 21-4-2016 03:55 PM | 显示全部楼层
$attributes = array(
        'class' => 'mycustomclass',
        'style' => 'width:200px;'
                );

<?php echo form_label('userId :','userId', $attributes); ?>

我要set css for form_label, 做了以上的coding, 但是宽度还是一样。有人可以指点指点吗?

回复

使用道具 举报

发表于 21-4-2016 03:58 PM | 显示全部楼层
你有用过别的MVC??
回复

使用道具 举报

 楼主| 发表于 21-4-2016 04:01 PM | 显示全部楼层

只有 codeigniter。现在是用 HMVC. 其他的css 都可以看到,就是form_label 的看不到
回复

使用道具 举报

发表于 22-4-2016 08:46 PM | 显示全部楼层
晚上好,

我大概可以猜到幾個問題啦, 但是還是請你把form_label所產生的HTML貼出來。

你也可以爲label的CSS加上border

  1. $attributes = array(
  2.         'class' => 'mycustomclass',
  3.         'style' => 'width:200px; border-style: solid;'
  4. );
复制代码


看他的寬度是否真的沒有200px(可能是已經成功設定成200px, 但是可能其他的設定overlap在一起)

你自己try try 看。

PS:如果遇到CI類的問題, 你不妨Tag我的名字, 我可以略盡綿力。

祝安
回复

使用道具 举报

 楼主| 发表于 25-4-2016 08:24 AM | 显示全部楼层
musicalangel 发表于 22-4-2016 08:46 PM
晚上好,

我大概可以猜到幾個問題啦, 但是還是請你把form_label所產生的HTML貼出來。

你也可以爲label的CSS加上border



看他的寬度是否真的沒有200px(可能是已經成功設定成200px, 但是可能其他的設定o ...

你所说的方式我已经试过了。我直接在inspect element 那里更改也是没有什么改变。所以想知道除了这个方式来加css, 还有没有其他的方法
回复

使用道具 举报

Follow Us
发表于 25-4-2016 09:24 AM | 显示全部楼层
神秘84 发表于 25-4-2016 08:24 AM
你所说的方式我已经试过了。我直接在inspect element 那里更改也是没有什么改变。所以想知道除了这个方式来加css, 还有没有其他的方法

OK,
最主要是要了解到, 你想找的是CSS的debug方式,
还是CSS的其他写法.

如果是前者,
你可以研究看看browser 的Developer Tools.
像Firefox, 去按右上角的Open Menu, 然后
Menu > Developer > Developer Toolbar

之后Firefox会在下方出现一个toolbar, 你可以按下toolbar 的按钮, 他就会pop出很多东西.
那个可以提供你debug Javascript 跟 CSS的部分问题, 甚至你可以直接加CSS的code上去来直接看效果.

而Chrome也是有类似的功能, 至于开启的方法你就要自己去摸索了.

然后如果是CSS的撰写方式, 一般上我会在 form 的 helper 那边放上 ID 例如:
  1. form_input("chinese_name",$form_data["chinese_name"], 'id="chinese_input_field"');
复制代码

上面那行就会产生类似下面的html code
  1. <input type="text" name="chinese_name" id="chinese_input_field">
复制代码

之后我会在view的下方加上
  1. <!--这是Javascript-->
  2. <script>
  3.     $("#chinese_input_field").focus();
  4. </script>

  5. <!--这是CSS-->
  6. <style>
  7.     #chinese_input_field { color:orange }
  8. </style>
复制代码
就把css 跟 js的code写在view的下方
或者是写在一个独立的css档案里面.

我觉得你还是把html的code贴上来,
可能只是不同browser的问题,

祝学习愉快.


回复

使用道具 举报

 楼主| 发表于 27-4-2016 03:44 PM | 显示全部楼层
musicalangel 发表于 25-4-2016 09:24 AM
OK,
最主要是要了解到, 你想找的是CSS的debug方式,
还是CSS的其他写法.

如果是前者,
你可以研究看看browser 的Developer Tools.
像Firefox, 去按右上角的Open Menu, 然后
Menu > Developer > Developer  ...

做到了,哈哈~ 我之前就是把javascript 放在上面,换去下面就Ok了~ 谢谢~
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 28-4-2016 04:10 PM | 显示全部楼层
本帖最后由 神秘84 于 28-4-2016 04:30 PM 编辑

@musicalangel 又有问题想请教你了~

$this->load->model('wallet1', 'wallet');

我google 了但是没有看过有2 个value 的。你知道第2个value 是指什么吗?还是这个model() 原本就只能放一个parameter ?
回复

使用道具 举报

发表于 28-4-2016 07:44 PM | 显示全部楼层
神秘84 发表于 28-4-2016 04:10 PM
@musicalangel 又有问题想请教你了~

$this->load->model('wallet1', 'wallet');

我google 了但是没有看过有2 个value 的。你知道第2个value 是指什么吗?还是这个model() 原本就只能放一个parameter ?

這邊有兩個可能性:

可能性1:
一般裝載一個模型時, 衹需丟入一個變數就好, 如下:
  1. $this->load->model("model_name");
复制代码
就是裝載名爲model_name的一個模型, 也就是説你接下來可以這樣使用
  1. $this->model_name->function_name();
复制代码

如果你要裝載複數個模型, 就要這樣子寫:
  1. $this->load->model(array("model1", "model2"));
复制代码

你仔細看, 其實本來丟一個字串進去, 現在是丟一個陣列進去。

所以你接下來可以這樣用:
  1. $this->model1->function_name();
  2. $this->model2->function_name();
复制代码
另外,
PHP 5.4以後, PHP可以用正挂號來宣告陣列。
  1. 本來
  2. $array_name=array("type1","type2");

  3. PHP5.4以後
  4. $array_name=["type1","type2"];
复制代码

之所以會講這個, 我相信你在打
  1. $this->load->model("wallet1","wallet");
复制代码
的時候可能忘了打上正挂號, 例如:
  1. $this->load->model(["wallet1","wallet"]);
复制代码

另外一個可能性是,
當你在load的時候, 他背後會include指定的檔案, 例如你打
  1. $this->load->model("user_m");
复制代码
他會去你的model的路徑(/web_directory/application/models)去include 名爲User_m.php
然後第二部, 他會執行
  1. $this->user_m=new User_m();
复制代码
就是class創建物件的動作。

而第二個變數, 其實就是在創建物件時, 你想把那個物件創建成別個名稱,
以人類的術語來説:
  1. 原本:
  2. 裝載的時候這樣寫:
  3. $this->load->model("wallet1");

  4. 使用的時候這樣寫:
  5. $this->wallet1->function_name();
复制代码

  1. 第二個變數的使用法:
  2. 裝載的時候這樣寫
  3. $this->load->model("wallet1","wallet");

  4. 使用的時候這樣寫:
  5. $this->wallet->function_name();
复制代码

第二個變數是用來改變load進來后, 你要以別個名稱呼叫他。
這個用法一般是你有兩個物件爲同樣名稱時, 例如你有一個user_model.php
然後你用了Ion_auth的套件,人家也有個model叫 user_model.php
所以你在寫的時候就希望把他的user_model改成類似 ion_auth_user
來避免相同名稱所帶來的錯誤。

如果還是不明白, 你可以親自嘗試一下。

祝安。





回复

使用道具 举报

发表于 4-5-2016 06:44 PM | 显示全部楼层
神秘84 发表于 28-4-2016 04:10 PM
@musicalangel 又有问题想请教你了~

$this->load->model('wallet1', 'wallet');

我google 了但是没有看过有2 个value 的。你知道第2个value 是指什么吗?还是这个model() 原本就只能放一个parameter ?

http://www.codeigniter.com/user_guide/general/models.html

If you would like your model assigned to a different object name you can specify it via the second parameter of the loading method:

$this->load->model('model_name', 'foobar');$this->foobar->method();

root_folder/system/core/Loader.php
  1. /**
  2.          * Model Loader
  3.          *
  4.          * Loads and instantiates models.
  5.          *
  6.          * @param        string        $model                Model name
  7.          * @param        string        $name                An optional object name to assign to
  8.          * @param        bool        $db_conn        An optional database connection configuration to initialize
  9.          * @return        object
  10.          */
  11.         public function model($model, $name = '', $db_conn = FALSE)
  12.         {
  13.                 if (empty($model))
  14.                 {
  15.                         return $this;
  16.                 }
  17.                 elseif (is_array($model))
  18.                 {
  19.                         foreach ($model as $key => $value)
  20.                         {
  21.                                 is_int($key) ? $this->model($value, '', $db_conn) : $this->model($key, $value, $db_conn);
  22.                         }

  23.                         return $this;
  24.                 }
复制代码




回复

使用道具 举报

 楼主| 发表于 5-5-2016 09:13 AM | 显示全部楼层
musicalangel 发表于 28-4-2016 07:44 PM
這邊有兩個可能性:

可能性1:
一般裝載一個模型時, 衹需丟入一個變數就好, 如下:
就是裝載名爲model_name的一個模型, 也就是説你接下來可以這樣使用

如果你要裝載複數個模型, 就要這樣子寫:

你 ...

做到了~ 谢谢你
回复

使用道具 举报

 楼主| 发表于 5-5-2016 09:14 AM | 显示全部楼层
kingdom_manga 发表于 4-5-2016 06:44 PM
http://www.codeigniter.com/user_guide/general/models.html

If you would like your model assigned to a different object name you can specify it via the second parameter of the loading methodthis- ...

thanks ya ~
回复

使用道具 举报

发表于 5-5-2016 12:24 PM | 显示全部楼层

我也是刚用 Codeigniter 不到两礼拜, 因为我几天前的面试是用Codeigniter来面试,和新加坡那些传用PHP的公司满多用Codeigniter下, 也想聊聊下。

请问你写 Authentication 和系统是, 你是用 Open source Auth plugin 还是用 Codeigniter build in session library来写, 你用 View 来 render page 还是 API Rest base 的?

其他人, 如果能得话,请回复我的贴, 我好奇,大马和新加坡公司/Codeigniter Programmer 现在很多时候是用那方式写
回复

使用道具 举报

发表于 5-5-2016 09:25 PM | 显示全部楼层
kingdom_manga 发表于 5-5-2016 12:24 PM
我也是刚用 Codeigniter 不到两礼拜, 因为我几天前的面试是用Codeigniter来面试,和新加坡那些传用PHP的公司满多用Codeigniter下, 也想聊聊下。

请问你写 Authentication 和系统是, 你是用 Open source Auth ...

趁現在我還有些時間, 我就稍微分享下我開發CI application時的情況。

説到Auth, 我想你應該有google 到關於 Ion Auth這個套件吧?
有提供Login, Password encrypt, salt, forgot password, group 等管理。

其他的Auth Library 這裏暫且不談(很多都太舊沒有更新)。

我在開發我們公司用的Close source系統時, 需要考量的是什麽 “身份” 就能access 什麽功能。
雖然Ion Auth有提供group的schema, 但是他跟身份有些些微的差異。

除此之外, 還有一些schema上我們自己本身的設計跟Ion Auth有明顯差異的地方,
而且很困難光靠modify 去把Ion Auth改過來。

所以我在撰寫的時候就如你説的, 自己使用Session Library來執行。
至於執行Controller之前需要判斷登入者身份是否正確, 權限是否足夠,
官方説明是有用Hooks 的Pre Controller
或MY_Controller去Extends CI_Controller
這方面我就使用了前者。

至於你講的Restful.
首先, 如果你有使用Laravel, 你就會很清楚, Laravel 是在form那邊自動產生一個__action
action 會帶put/delete/post/get等值
用作模擬完整的Restful.

但是CI 沒有這樣的機制
所以你如果要做restful, 就要自己去implement這些東西。
此外, 會用到restful 通常會有兩個原因, 一個是API, 一個是micro service
前者通常是提供給第三方或Mobile Apps要使用你的系統時, 所做的一個給人存取的界面。

而另外一個則是你的服務太大, 必須將某個功能切割給單一個機器去跑, 所以做一個界面給front end去存取。

如果你目前你衹是在學習階段
不需要想太多, 先以基本的MVC的模式去跑, 用view去render你的資料就好。

等待你瞭解所有的東西后, 再來學習Optimization 跟 micro service這類比較跟架構牽扯關係的議題

祝學習愉快。


回复

使用道具 举报

发表于 5-5-2016 10:27 PM | 显示全部楼层
本帖最后由 kingdom_manga 于 5-5-2016 10:37 PM 编辑
musicalangel 发表于 5-5-2016 09:25 PM
趁現在我還有些時間, 我就稍微分享下我開發CI application時的情況。

説到Auth, 我想你應該有google 到關於 Ion Auth這個套件吧?
有提供Login, Password encrypt, salt, forgot password, group 等管理。

...

谢谢你的指导
我确实在學習階段, 但不能只用Render view的方式没办法啊,现在大部分 Job advertisment 都要求懂 restful 之类的, Microservice 都是很少公司要求这知识。


想问下,你用 Hooks 的Pre Controller 来判斷登入者身份是否正確, 请问你是写 custom class 吗?不知道能不能分享那 class 的 basic? 很好奇你是怎样写的
回复

使用道具 举报


ADVERTISEMENT

发表于 6-5-2016 07:32 AM | 显示全部楼层
kingdom_manga 发表于 5-5-2016 10:27 PM
谢谢你的指导
我确实在學習階段, 但不能只用Render view的方式没办法啊,现在大部分 Job advertisment 都要求懂 restful 之类的, Microservice 都是很少公司要求这知识。


想问下,你用 Hooks ...

我原始参考的是这个:
CI Simple ACL

但是这个Library只提供简单的 roles id vs pages
就后来modify 到最后, 整个library面目全非了 XD.

不过是个很好参考的入门资料.

希望帮到你

祝学习愉快.

回复

使用道具 举报

 楼主| 发表于 6-5-2016 05:11 PM | 显示全部楼层
我也是刚刚开始学codeigniter,新公司的要求,但是我发现我的理解能力越来越弱了

需要花很多时间去了解,去明白,现在的programmer, 什么software 都要会,好难哦~
回复

使用道具 举报

发表于 6-5-2016 08:06 PM | 显示全部楼层
musicalangel 发表于 6-5-2016 07:32 AM
我原始参考的是这个:
CI Simple ACL

但是这个Library只提供简单的 roles id vs pages
就后来modify 到最后, 整个library面目全非了 XD.

不过是个很好参考的入门资料.

希望帮到你

祝学习愉快.

谢谢你的指导, 我下次有疑问时,你得空时,麻烦也期待大大将来的帮忙
回复

使用道具 举报

发表于 6-5-2016 08:10 PM | 显示全部楼层
神秘84 发表于 6-5-2016 05:11 PM
我也是刚刚开始学codeigniter,新公司的要求,但是我发现我的理解能力越来越弱了

需要花很多时间去了解,去明白,现在的programmer, 什么software 都要会,好难哦~

跟我一样。。。我这几个月都在追技术。。。
一下 Angular 一下 Symfony 一下Wordpress 一下Codeigniter 现在变到自己想学 Drupal, Zend
但好处是可以知道每个的难度,好处 和最重要的,知道自己讨厌哪个 Framework,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 30-7-2025 02:47 AM , Processed in 0.146862 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表