我一直在使用CodeIgniter很长一段时间,但是最近我一直觉得需要转向更先进/更多的OOP框架.Kohana似乎是一个经常被推荐的选项,我的问题是,Kohana与CodeIgniter有何不同?差异列表,特别是语法差异,会很棒.
我创建了一些实用功能,就像一个h()充当echo htmlentities($var).我希望这些功能随处可用.所以我把它放在哪里.
这看起来非常基本,但我无法理解它.
我正在尝试向控制器中的方法发送多个参数,如下所示:
http://localhost/ci/index.php/subjects/3/state
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的路线:
$route['subjects/(:num)'] = 'subjects/view/$1';
$route['subjects/(:num)/{:any}'] = 'subjects/view/$1/$2';
Run Code Online (Sandbox Code Playgroud)
方法接受2个参数:
public function view($slug, $id = null){
}
Run Code Online (Sandbox Code Playgroud)
但我似乎得到了404.我怎么能让这个工作?我需要view方法总是接受1个参数和可选的其他参数.
注意:我包括网址助手.
codeigniter codeigniter-url codeigniter-2 codeigniter-routing
所以我早上/周末的表现非常令人失望.它以设置PHPUnit,集成Eclipse等形式出现
现在我刚刚发现没有直接从PHPUnit测试CodeIgniter 2.0应用程序的方法.
我花了很多时间研究库(FooStack和CIUnit)但这些库的开发已经停止并且与CI 2.0不兼容
在我参加包含2.0单元测试课程之前,我需要问一下,我是否错过了有关CI 2.0和PHPUnit的任何重大进展.
任何指导都非常感谢.
谢谢,康纳
因为我想分离系统的前端和后端.我在控制器中创建了2个文件夹作为前端和后端
下面是我的控制器文件夹的结构
controller
--frontend
---store.php
---processing.php
---profile.php
---authenticate.php
---register.php
--backend
---authenticate.php
---stats.php
---users.php
---property_manage.php
---register.php
Run Code Online (Sandbox Code Playgroud)
我可以通过使用来访问这些功能
frontend/store/add
frontend/store/manage
......
backend/stats/sales
backend/stats/payments
.....
Run Code Online (Sandbox Code Playgroud)
但我想从网址中取下前端和后端段.
我检查了codeigniter中的路由功能,但据我所知,我需要单独指定每条路由.由于我有大约12个控制器,每个控制器有大约10-15个功能,我可能需要指定路由的每个功能.
有没有其他有效的方法来实现使用路由或任何其他方式?(不使用任何htaccess)
我有class MY_Controller extends CI_Controller大型配置文件部分的常用逻辑,所以I'va尝试class Profile extends MY_Controller使用配置文件部分的通用逻辑创建,所有与此部分相关的类都应该扩展此Profile类,正如我所理解的那样,但是当我尝试创建时class Index extends Profile我收到错误:
Fatal error: Class 'Profile' not found
Run Code Online (Sandbox Code Playgroud)
CodeIgniter试图找到index.php我正在运行的这个类.
我的错误在哪里?或者也许有更好的方法来标记共同的逻辑?
我一直在与CodeIgniter合作已经有一段时间了,我现在正在为一个想要自定义404页面的客户做一个项目.一切都很好,404_override而且效果很好.
我的问题出现在访问者试图访问不存在的文章时我想调用该show_404()函数,但这显示了"out of box"404页面,而不是404_override中写的那个.
我已经看到了旧版本的一些修复,但我无法在2.1中使用它.所以如果有人可以帮助我,我将非常感激.
我有以下mysql查询.你能告诉我如何用Codeigniter的方式编写相同的查询吗?
SELECT * FROM myTable
WHERE trans_id IN ( SELECT trans_id FROM myTable WHERE code='B')
AND code!='B'
Run Code Online (Sandbox Code Playgroud) 我花了一整天的时间试图找出这个问题.在这里发布这个问题是我最后的希望.我希望有人能帮助我继续完成我的第一份工作.
因此,当直接将数据从我的视图传递到RestServer时,POST工作正常.但是,RESTServer API无法找到从RestClient发送的POST数据.
以下是片段:
RestClient API:
$ver = 'v1';
$config = array('server' => base_url()."v1",
'api_key' => 'xxxxxx',
'api_name' => 'X-API-KEY',
'http_user' => 'admin',
'http_pass' => 'xxxxx',
'http_auth' => 'basic',
);
$this->rest->initialize($config);
$this->rest->format('application/json');
$param = array(
'id' => $this->input->post('id'), // works fine here
'name' => $this->input->post('name')
);
$user = $this->rest->post('employer/postNewProject', $param, 'json');
//if (isset($user->errors)) show_404('admin');
$this->rest->debug();
Run Code Online (Sandbox Code Playgroud)
RestServer API
class Employer extends REST_Controller
{
public function __construct()
{
parent::__construct();
$this->lang->load("application");
$this->load->library("users/auth");
Datamapper::add_model_path( array( APPPATH."modules" ) );
}
public function postNewProject_post()
{
// …Run Code Online (Sandbox Code Playgroud) php codeigniter rest-client codeigniter-2 codeigniter-restserver
我已按照官方codeigniter网站上提供的确切指南来运行CLI(命令行界面)工具.https://www.codeigniter.com/userguide2/general/cli.html
我的控制器是......
<?php
class Tools extends CI_Controller {
public function message($to = 'World')
{
echo "Hello {$to}!".PHP_EOL;
}
} ?>
Run Code Online (Sandbox Code Playgroud)
当我从我的CMD运行以下命令时,我在命令行窗口中得到以下输出(和错误):
php index.php tools message
<h4>A PHP Error was encountered.</h4>
<p>Severity: Notice</p>
<p>Message: Undefined index: REMOTE_ADDR</p>
<p>Filename: core/Input.php</p>
<p>Line Number: 351</p>
.....
<h4>A PHP Error was encountered</h4>
<p>Message: Cannot modify header information - headers already sent by (output at C:{systempath}\system\2.1.4\core\Exceptions.php:185)</p>
<p>Filename: libraries/Session.php</p>
<p>Line Number: 675</p>
</div>Hello World!
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释为什么我会遇到这个问题?我也按照官方的Codeigniter CLI教程来学习本教程 - 任何想法?我正在使用CodeIgniter 2.1.4和XAMPP(Windows).
php command-line codeigniter command-line-interface codeigniter-2
codeigniter-2 ×10
codeigniter ×9
php ×7
command-line ×1
kohana ×1
kohana-3 ×1
phpunit ×1
rest-client ×1
unit-testing ×1