小编Mar*_*łek的帖子

如何更改Laravel 4和Laravel 5用户身份验证的/自定义密码字段名称

我想在使用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是否可以更改数据库中的密码字段名称?

php authentication laravel laravel-4 laravel-5

11
推荐指数
1
解决办法
2万
查看次数

按slug搜索对象而不是id

我是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).

尽管如此......仍然没有运气......不确定我是否误解了某些东西是如何起作用的或者发生了什么......所以如果有人对我可能做错了什么或任何可能的事情有任何建议,我将非常感激!:)

laravel eloquent laravel-routing laravel-5 laravel-5.2

11
推荐指数
3
解决办法
2万
查看次数

Laravel 7 - 停止处理作业并清除队列

我在 AWS 上有一个生产系统并使用 Laravel Forge。有一个正在处理作业的默认队列。

我已经创建了许多作业,现在希望删除它们(因为它们需要很多小时才能完成,而且我意识到我的输入数据很糟糕)。我创建了一个具有良好数据的新作业,但只有在所有其他作业完成后才会对其进行处理。

如何删除所有作业?

redis它之前是使用队列驱动程序设置的。我不知道如何删除作业,因此我将驱动程序切换到database,并重新启动服务器,认为这至少会让作业停止处理。然而,令我沮丧的是,它们仍在继续处理:-(

我什至从 forge ui 中删除了工作程序并重新启动了服务器:作业仍在处理。

为什么作业会继续被处理?

我怎样才能阻止他们?

laravel laravel-forge laravel-queue laravel-7

11
推荐指数
1
解决办法
4万
查看次数

PhpDoc用于接口和类实现接口 - 区别

问题很简单 - 我应该如何区分用于接口的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)

php documentation interface class phpdoc

10
推荐指数
1
解决办法
7419
查看次数

mysql查询"SHOW COLUMNS FROM table like'colmunname'":问题

我有一个问题SHOW COLUMNS FROM table like 'column name'".我已经尝试了一些测试,它看起来像"在哪里column name='column'.

但是,我想提前非常感谢你.

另外,我想说,为什么我不能使用SHOW COLUMNS FROM table = 'columnname'

mysql sql

10
推荐指数
1
解决办法
4万
查看次数

Laravel 4:调用未定义的方法Redis :: connection()

我对这个错误感到疯狂.我有一个带有Debian 7的流浪汉VM,用Puphpet生成,安装很好.

1. Redis已安装并正常运行

redis-server 在跑 :

redis-server正在运行

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

在此输入图像描述

2.安装了php5-redis

php5-redis 实际安装:

在此输入图像描述

3. Laravel 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)

4.对Redis的调用很简单:

// 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();)

我哪里错了?

顺便说一句,我讨厌星期一>.>

redis laravel laravel-4

10
推荐指数
2
解决办法
7959
查看次数

Laravel 5.2登录会话不会持续存在

我一直在使用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.但是,这也给了同样的东西.

非常感谢任何帮助.

php laravel laravel-5 cartalyst-sentinel laravel-5.2

10
推荐指数
1
解决办法
6060
查看次数

Docker撰写 - 共享卷Nginx

我只想测试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/htmlC:\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)

这没有问题.文件现在应该按原样共享

windows nginx docker docker-compose

10
推荐指数
1
解决办法
6329
查看次数

如何在laravel验证中验证多个电子邮件?

我已经为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)

但我仍然有错误.可以任何身体帮助.

谢谢,

php email validation laravel laravel-validation

9
推荐指数
3
解决办法
1万
查看次数

Laravel创建5.2版本项目问题

我正在开始一个新项目,我想用一个新版本的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文档.它正式出局

laravel composer-php laravel-5.2

9
推荐指数
2
解决办法
2万
查看次数