目前我正在重建一个现有的网站,旧网站是用CakePHP编写的,但新的网站是在Laravel.
旧用户必须能够使用与旧站点上使用的密码相同的密码登录,但这些密码在CakePHP中进行了哈希处理.
我的问题是:
有没有一种方法可以让我在Laravel中使用CakePHP密码哈希方式?
我试过寻找一个可以实现这一目标的包,但无济于事.
我正在使用Cakephp 3使用sqlserver作为数据源服务器.我确信我的数据库连接没有问题..因为home.ctp提示我已连接到我的数据库..我也可以使用迁移插件来创建我的表..似乎没有问题使用这些工具.但是在我烘焙MVC之后,我只有错误的页面.
例如$ bin\cake烘焙所有测试
我发现没有错误,MVC在其特定文件夹,testController.php,testTable等中.
并在浏览器localhost:8765\tests
但我得到的只是不同错误的页面..我看到了
Error: SQLSTATE[42000]: [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near the keyword 'desc'.
SELECT * FROM (SELECT Tests.id AS [Tests__id], Tests.desc AS [Tests__desc], (ROW_NUMBER() OVER (ORDER BY (SELECT NULL))) AS [_cake_page_rownum_] FROM tests Tests) _cake_paging_ WHERE _cake_paging_._cake_page_rownum_ <= :c0
左侧有更多错误.
我认为这是因为带有错误查询的控制器或bake生成的查询仅适用于mysql.我只是想知道如何处理这件事.有没有我忘了做的设置?请指教.我是Cakephp的新手,英语不是我的母语,如果我无法正确解释我的问题,对不起.提前致谢.
我知道这是一个非常愚蠢的问题,但在这里我没有得到任何错误.
贝娄查询工作正常
$data=$this->Test->query('SELECT * FROM tests where report_id=85');
Run Code Online (Sandbox Code Playgroud)
但是find方法中的相同查询不起作用
$condition=array('Test.report_id'=>85);
$data=$this->Test->find('all',array('condition'=>$condition));
Run Code Online (Sandbox Code Playgroud) 我在更新查询期间遇到问题.
模型代码
public function resetpassword($key,$password)
{
$aresetpassword = $this->updateAll(array('Register.password'=>$password), array('Register.key'=>$key));
return($aresetpassword);
}
Run Code Online (Sandbox Code Playgroud)
查看页面错误
错误:SQLSTATE [42S22]:找不到列:1054未知列''字段列表'中的'8815061c1a6c63398b9a2dfb1f44aae89dd59bfd'
SQL查询:
UPDATE `milgyonu_mber`.`registers` AS `Register`
SET `Register`.`password` = 8815061c1a6c63398b9a2dfb1f44aae89dd59bfd
WHERE `Register`.`key` = '656abe3991a51c62e860b8d1401e4f49'
Run Code Online (Sandbox Code Playgroud)
事件密码字段存在于我的表中.
这是我的控制器:
class MyWorksController extends AppController{
function index(){
$workLevel = $this->getWorkLevel();
if($workLevel == 3){
$recreationID = $this->getRecessId($workLevel );
$this->set('recreationID', $recreationID);
$this->redirect('/MyWorks/report1/');
}
else{
$this->redirect('/MyWorks/report2/');
}
}
function report1(){}
function report2(){}
}
Run Code Online (Sandbox Code Playgroud)
我想通过以下方式将$ recreationID值发送到我的视图页面的表单:
echo $form->create('FishingTimeAllocations', array('tmt:validate'=>'true', 'action'=>'index', 'recreationID '=>$recreationID ));?>
Run Code Online (Sandbox Code Playgroud)
但是,我没有成功这样做,我一直得到的错误是这样的:
Undefined variable: recreationID
Run Code Online (Sandbox Code Playgroud)
我的代码中有什么问题,以及完成所需操作的正确方法是什么?
CakePHP版本1.2,PHP版本5.2,MySQL版本5.1.36.(我知道我正在运行这些软件的旧版本 - 目前我无能为力).
为了迁移到cakephp 3并掌握在这个版本的框架上创建应用程序的技能,我刚刚编写了应用程序和插件.
我想在插件,管理员,客户等中分离Web应用程序.
我可以访问插件中的位置,例如myapp/admin/users,myapp/admin /,但是如果我尝试访问url myapp/admin(最后没有斜线)我必须重定向myapp的位置/ Webroot公司/管理/.
在myapp/webroot /我有一个名为admin的主题文件夹,我试图在admintheme中更改名称,但仍然有重定向.
怎么解决这个?
谢谢.
Cakephp v3现在能够支持复合主键. http://book.cakephp.org/3.0/en/quickstart.html
快速入门指南中给出的一个例子;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
created DATETIME,
modified DATETIME
);
CREATE TABLE bookmarks (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
title VARCHAR(50),
description TEXT,
url TEXT,
created DATETIME,
modified DATETIME,
FOREIGN KEY user_key (user_id) REFERENCES users(id)
);
CREATE TABLE tags (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255),
created DATETIME,
modified DATETIME,
UNIQUE KEY (title)
);
CREATE TABLE bookmarks_tags (
bookmark_id …Run Code Online (Sandbox Code Playgroud) mysql database-design cakephp primary-key composite-primary-key
很长一段时间以来,我一直在寻找答案.我在这里查看了其他问题,但找不到与我的情况相关的问题.谷歌搜索这个问题也没有用.
基本上,我使用ZF1的Gdata类来访问照片api.这是几个星期前工作但停止工作(我不确定是否有代码更改或谷歌完全停止了API).
我的代码如下:
private function _loadZendLibraries()
{
set_include_path(APP.'vendors');
require_once('Zend/Loader.php');
$Zend_Loader = new Zend_Loader();
$Zend_Loader->loadClass('Zend_Gdata');
$Zend_Loader->loadClass('Zend_Gdata_ClientLogin');
$Zend_Loader->loadClass('Zend_Gdata_AuthSub');
$Zend_Loader->loadClass('Zend_Gdata_Photos');
$Zend_Loader->loadClass('Zend_Gdata_Photos_UserQuery');
$Zend_Loader->loadClass('Zend_Gdata_Photos_AlbumQuery');
$Zend_Loader->loadClass('Zend_Gdata_Photos_PhotoQuery');
$Zend_Loader->loadClass('Zend_Gdata_App_Extension_Category');
}
function checkGoogleImages(){
$this->_loadZendLibraries();
$service_name = Zend_Gdata_Photos::AUTH_SERVICE_NAME;
$user = '********@gmail.com';
$pass = '********';
try {
$this->client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service_name);
} catch (Zend_Gdata_App_Exception $e) {
$this->Session->setFlash("Error: " . $e->getMessage(). "<br /> You need go to Google+ => Settings => Applications and APPROVE the application to connect.", 'flash_failure');
$this->Session->delete('GOOGLE_USER');
$this->redirect($this->referer());
}
print "<pre>";
print_r($this->client);
exit;
}
Run Code Online (Sandbox Code Playgroud)
在一台服务器上它给出:
注意(8):未定义的偏移量:1 [APP/vendors/Zend/Gdata/ClientLogin.php,第150行]
另一方面: …
我在使用HTML表单时遇到问题,其中一个字段是多选.当我将表单作为POST提交时,一切正常,我可以看到并使用该数组.当作为GET提交时,表单的多选部分仅显示string(5) "Array".从字面上看这个词Array.我正在使用内置调试工具包中的CakePHP查看查询字符串.
这是URL
http://www.domain.com/?keywords=&location%5B%5D=12333&location%5B%5D=42123
这里的重要部分是位置数组.但是当我查看服务器变量时,它会变为:
Query String keywords=&location=Array
Run Code Online (Sandbox Code Playgroud)
这里location只打印这个单词Array.无论我尝试什么,我都无法将位置数组传递给PHP.是否有php.ini允许这样的设置?有没有其他方法可以使这项工作正常?为了保存搜索,我需要这是一个GET查询.
var_dump的$_GET(非上述稍有不同的查询):
array(10) {
["agent"]=> string(0) ""
["price_min"]=> string(1) "0"
["price_max"]=> string(9) "987654321"
["beds"]=> string(0) ""
["baths"]=> string(0) ""
["mls"]=> string(0) ""
["pool"]=> string(1) "0"
["spa"]=> string(1) "0"
["keywords"]=> string(0) ""
["location"]=> string(5) "Array"
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试为我的项目添加两种不同的搜索变体.有一个模型"用户"和一个模型"标签".用户有很多标签.现在我希望能够使用特定标签搜索用户.要么我想要显示所有具有任何指定标签的用户.我这样工作:
$query = $this->Users->find();
$query->matching('Tags', function ($q) {
return $q->where(['Tags.name' => 'Tag1'])
->orWhere(['Tags.name' => 'Tag2']);
});
Run Code Online (Sandbox Code Playgroud)
但现在我想找到同时拥有两个标签的所有用户.我试过->andWhere而不是->orWhere,但结果总是空的.
如何找到包含多个标签的用户?
谢谢
cakephp ×10
php ×4
mysql ×3
cakephp-3.0 ×2
cakephp-3.x ×1
cakephp-bake ×1
gdata ×1
get ×1
google-plus ×1
hash ×1
html ×1
laravel ×1
laravel-4 ×1
primary-key ×1
sql-server ×1