我想在使用Laravel身份验证时更改数据库中的密码字段.我希望我的users表中的列有名称passwd而不是password.我试着运行这样的东西:
Auth::attempt(array(
'user_name' => 'admin',
'passwd' => 'hardpass',
));
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我还尝试在User模型中添加以下函数:
public function getAuthPassword() {
return $this->passwd;
}
Run Code Online (Sandbox Code Playgroud)
但它也没有任何改变.用户仍未通过身份验证.Laravel是否可以更改数据库中的密码字段名称?
我是Laravel的相对初学者(使用版本5.2.3)并且一直在研究Laracasts的教程,然后做了一些我自己的实验.
我成功地设置了一个路由,通过其ID从表中获取项目,如下所示
Route::get('/wiseweasel/{id}', 'WiseweaselController@singleArticle');
Run Code Online (Sandbox Code Playgroud)
为简单起见,控制器只是dd的文章
public function singleArticle($id)
{
$article = ww_articles::find($id);
dd($article);
}
Run Code Online (Sandbox Code Playgroud)
这非常正常 - 我访问eg/wiseweasel/2并获取id2的记录内容.
所以,我想使用记录中的slug字段而不是id.既然我知道ID方法正在运行,我已经尝试过修改这个路由和控制器(也尝试重新创建,既没有工作)所以我现在有:
Route::get('/wiseweasel/{slug}', 'WiseweaselController@singleArticle');
Run Code Online (Sandbox Code Playgroud)
和
public function singleArticle($slug)
{
$article = ww_articles::find($slug);
dd($article);
}
Run Code Online (Sandbox Code Playgroud)
第二个记录的slu is是"secondarticle".所以,访问url/wiseweasel/secondarticle,我希望看到与之前相同的记录.相反,我最终得到null.
更奇怪的是,使用原始的id路由(/ wiseweasel/2)仍然会返回记录...当我从路由和控制器中删除了所有这些跟踪时,所以我希望这会失败...
这让我想知道这是否可能是一些奇怪的缓存问题?我试过了
php artisan route:清楚
以防路由被缓存.我也尝试重启Apache和MySql(我正在使用XAMMP).
尽管如此......仍然没有运气......不确定我是否误解了某些东西是如何起作用的或者发生了什么......所以如果有人对我可能做错了什么或任何可能的事情有任何建议,我将非常感激!:)
我在 AWS 上有一个生产系统并使用 Laravel Forge。有一个正在处理作业的默认队列。
我已经创建了许多作业,现在希望删除它们(因为它们需要很多小时才能完成,而且我意识到我的输入数据很糟糕)。我创建了一个具有良好数据的新作业,但只有在所有其他作业完成后才会对其进行处理。
如何删除所有作业?
redis它之前是使用队列驱动程序设置的。我不知道如何删除作业,因此我将驱动程序切换到database,并重新启动服务器,认为这至少会让作业停止处理。然而,令我沮丧的是,它们仍在继续处理:-(
我什至从 forge ui 中删除了工作程序并重新启动了服务器:作业仍在处理。
为什么作业会继续被处理?
我怎样才能阻止他们?
问题很简单 - 我应该如何区分用于接口的phpdoc和用于实现接口的类?应该/它们可以是相同的还是接口文档应该尽可能通用,并且实现此接口的类更具体?
我从我的真实代码中包含一个方法phpDoc:
我的界面:
interface CacheInterface
{
/**
* Adds data to cache
*
* @param string $objectId Name of object to store in cache
* @param mixed $objectValue Data to store in cache
* @param mixed $lifetime Lifetime of cache file
* @param string $group Name of cache group.
* @param array $params Parameters that distinct cache files.
* @param array $files Name of files that are checked if cache is valid.
* @return bool True if cache …Run Code Online (Sandbox Code Playgroud) 我有一个问题SHOW COLUMNS FROM table like 'column name'".我已经尝试了一些测试,它看起来像"在哪里column name='column'.
但是,我想提前非常感谢你.
另外,我想说,为什么我不能使用SHOW COLUMNS FROM table = 'columnname'?
我对这个错误感到疯狂.我有一个带有Debian 7的流浪汉VM,用Puphpet生成,安装很好.
redis-server 在跑 :

我可以使用服务器127.0.0.1:6379:

php5-redis 实际安装:

这是我的redis配置文件app/local/database.php:
'redis' => [
'cluster' => false,
'default' => [
'host' => '127.0.0.1',
'port' => 6379,
'database' => 0,
],
],
Run Code Online (Sandbox Code Playgroud)
// Get redis
$redis = Redis::connection();
Run Code Online (Sandbox Code Playgroud)
sudo service nginx reload
sudo service redis-server force-reload
composer dumpautoload
Run Code Online (Sandbox Code Playgroud)
但没有解决错误.
我还在:
ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'Call to undefined method Redis::connection()' in /var/www/fd/app/menus/admin.menu.php:16
Run Code Online (Sandbox Code Playgroud)
(第16行是我连接的地方$redis = Redis::connection();)
我哪里错了?
顺便说一句,我讨厌星期一>.>
我一直在使用Sentinel在Laravel 5.2上实现一个简单的身份验证系统.
// Route : /login
$success = Sentinel::authenticate(array(
'email' => $email,
'password' => $password,
));
echo $success ? 'Login success' : 'Login failed';
Run Code Online (Sandbox Code Playgroud)
因此,上述代码Login success在验证码之后输出.但是,登录状态不会持久保存到其他请求.即:如果我从其他请求检查身份验证状态,则表示我没有登录!
// Route : test-login
echo \Sentinel::check() ? 'User is logged in' : 'User is not logged in';
Run Code Online (Sandbox Code Playgroud)
我甚至尝试过使用defaut laravel authencation \Auth::attempt.但是,这也给了同样的东西.
非常感谢任何帮助.
我只想测试Docker,似乎有些东西不能正常工作.当我有这样的docker-compose.yml时:
web:
image: nginx:latest
ports:
- "80:80"
Run Code Online (Sandbox Code Playgroud)
在浏览器中我运行我的docker.app域(示例域指向docker IP)我得到默认的nginx网页.
但是当我尝试做这样的事情时:
web:
image: nginx:latest
volumes:
- /d/Dev/docker/nginx-www/nginx/html/:/usr/share/nginx/html/
ports:
- "80:80"
Run Code Online (Sandbox Code Playgroud)
当我跑:
docker-compose up -id
Run Code Online (Sandbox Code Playgroud)
当我在浏览器中运行相同的URL时,我得到:
403禁止
nginx的/ 1.9.12
我使用的是Windows 8.1作为主机.
我做错了什么或者文件夹不能以这种方式共享?
编辑
解决方案(基于@HemersonVarela答案):
我试图传递的音量在D:\Dev\docker位置,所以我/d/Dev/docker在路径的开头使用.但是看看https://docs.docker.com/engine/userguide/containers/dockervolumes/你可以看到:
如果您在Mac或Windows上使用Docker Machine,您的Docker守护程序只能访问您的OS X或Windows文件系统.Docker Machine尝试自动共享您的/ Users(OS X)或C:\ Users(Windows)目录.
所以我需要做的是nginx-ww/nginx/html在C:\users\marcin目录中创建我的目录,所以我结束了:
web:
image: nginx:latest
volumes:
- /c/Users/marcin/docker/nginx-www/nginx/html/:/usr/share/nginx/html/
ports:
- "80:80"
Run Code Online (Sandbox Code Playgroud)
这没有问题.文件现在应该按原样共享
我已经为laravel中的变量验证了所有的东西但是对于电子邮件我有一个简单的问题.
来自Laravel的文档,
'email' => 'required|email'
Run Code Online (Sandbox Code Playgroud)
我知道这只是一个电子邮件地址但是对于喜欢,
email=abc@xyz.com,xyz@abc.com, def@ghi,com
Run Code Online (Sandbox Code Playgroud)
当我发送电子邮件的数组时,我仍然收到电子邮件不是有效的电子邮件.我做得更像,
'email' => 'required|email|array'
Run Code Online (Sandbox Code Playgroud)
但我仍然有错误.可以任何身体帮助.
谢谢,
我正在开始一个新项目,我想用一个新版本的laravel启动它.我不想升级和旧版本.
如何创建Laravel 5.2项目?
我的问题在哪里,我做了什么:
我安装了laravel 5.1
composer create-project --prefer-dist laravel/laravel projectname
Run Code Online (Sandbox Code Playgroud)
也laravel new projectname有同样的问题.
这是安装新项目后的作曲家文件
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.1.*"
},
"require-dev": {
"fzaninotto/faker": "~1.4",
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~4.0",
"phpspec/phpspec": "~2.1"
},
...
Run Code Online (Sandbox Code Playgroud)
我也尝试过
composer create-project laravel/laravel=5.2.0 projectname
Run Code Online (Sandbox Code Playgroud)
但我得到了这个错误
could not find package laravel/laravel with version 5.2.0.
Run Code Online (Sandbox Code Playgroud)
我试过composer self-update同样的问题我读了laravel 5.2文档.它正式出局