发表一篇新的帖子
打赏作者

chenxin

Cannot use Illuminate\Foundation\Auth\User as User because the name is already in use
发表帖子的时候出现这个name已经存在了,我退出登录,还是有这个,之后重新注册一个用户,依旧如此

JellyBool 回复 chenxin

额。。你把 Illuminate\Foundation\Auth\User as User 用到的这个地方都看看,在命名空间的 use 部分,应该是重名了

chenxin

use Illuminate\Foundation\Auth\User;
把Discussion中这句话注释掉就可以了,解释一下可以吗

JellyBool 回复 chenxin

额。。是你的命名空间没对吧。你需要使用的是 App\User 吧

chenxin 回复 JellyBool

对对!之前打错了,所以自动生成这条命名空间,爆炸!!!

chenxin

在注释掉那句话之后,用这种方式写插入不了数据
$data=[
‘user_id’=>\Auth::user()->id,
‘last_user_id’=>\Auth::user()->id,
];
discussion=Discussion::create(discussion=Discussion::create(request->all(),data);returnredirect()>action(PostsController@show,[id=>data); return redirect()->action('PostsController@show',['id'=>discussion->id]);

而用这种方式写
discussion=discussion=request->all();
$discussion[‘user_id’]=\Auth::user()->id;
$discussion[‘last_user_id’]=\Auth::user()->id;
discussion=Discussion::create(discussion=Discussion::create(discussion);
return redirect()->action(‘PostsController@show’,[‘id’=>$discussion->id]);
完美插入

JellyBool 回复 chenxin

额。。。$discussion=Discussion::create($request->all(),$data);这个是什么鬼。

以后用markdown稍微排版一下吧

chenxin 回复 JellyBool

??data不是一个数组里面包含的键值对吗,这种写法不对吗!我再看看视屏!好像对的吧!

chenxin 回复 JellyBool

好!我看票了!呃呃呃。。。。

djsxianglei

我用的是laravel5.3框架,如何去设置Authenticate.php下用户未登录跳转的路由

djsxianglei

在未登录的情况下,访问auth中间件中的路由,默认会给跳到登录路由,也就是/login,问下怎么配置这条路由,5.2的知道,5.3结构不一样了,老师这个该怎么配置

JellyBool 回复 djsxianglei

你在 Auth/LoginController 里面,加下面的方法试试:

 public function showLoginForm()
    {
        return redirect('/your_path');
    }
djsxianglei 回复 JellyBool

谢谢老师,我在app\Exceptions\Handler.php改动一下unauthenticated这个方法,吧login改成了user/login,可以了
/

djsxianglei 回复 JellyBool

一会再试试你的方法

Nixus 回复 JellyBool

也遇到这个问题了,laravel 5.5 中,middleware 中没 authentication.php 这个文件,其它几个也看了一下,没找到,全局查到也没找到

Nixus 回复 JellyBool

老师,试了你的方法,还是一样的错误

JellyBool 回复 Nixus

具体的代码贴出来看看呗? routes/web.php 和 LoginController 等代码

Nixus 回复 JellyBool
Route::get('/user/login', 'UserController@login');

或者

Route::get('/login', 'UserController@login');

都会报错:

InvalidArgumentException
Route [login] not defined.

LoginController.php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;

class LoginController extends Controller
{
       use AuthenticatesUsers;

    protected $redirectTo = '/';

    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }
}
JellyBool 回复 Nixus
 public function showLoginForm()
    {
        return redirect('/your_path');
    }

LoginController 有加这个?或者你这样试试:

Route::get('/login', 'UserController@login')->name('login');

再或者,你可以这样:

Route::get('/user/login', 'UserController@login')->name('login');

主要是 name('login') 这个定义

Nixus 回复 JellyBool

试了下,按照您这个方法,加了->name(‘login’),可以了
不需要加这个方法

public function showLoginForm()
{
    return redirect('/your_path');
}

谢谢

Nixus 回复 JellyBool

老师,还有个问题请教一下,按照上面的方式,问题是解决多了,但是如果是多表认证,该如何处理?

Route::get('/user/login', 'UserController@login')->name('login');
Route::get('/admin/login', 'AdminController@login')->name('admin.login');
JellyBool 回复 Nixus

多表认证跟这个貌似没啥关系吧

Nixus 回复 JellyBool

尝试了您上面的方法 showLoginForm ,一样报错,然后就删掉了

hate

找了很久的一个问题,报的路由错误
把form action 写成了accept,能气死

hate

last_user_id 这个字段是做什么的;

JellyBool 回复 hate

一般是记录最后由谁更新的。