Laravel 开发知乎:用户注册
zyzplzyz

请问下怎么将原有的数据库移植到laravel项目中,就是用laravel做项目重构,但是数据库还是要原来的,楼主遇到过这样的情况吗?请指点下吗

JellyBool

我还没有遇到这样的场景。但是想了一下,貌似也没有什么太大的难度吧,基本改一下数据库的连接配置,对应的去创建 Model 就可以了,或者你可以直接使用 DB 就可以查询了

zyzplzyz

谢谢,我明白了

wenjie_zheng

可以用这个 ignasbernotas/laravel-model-generator 生成 现有表结构的 Model .

zyzplzyz

谢谢,学习了

chenxin

你这个是从学院君那边学来的吧,我之前就从那边看的,非常方便...

zddragon

Class 'App\Http\Controllers\Auth\SendCloudTemplate' not found 这个错误是什么原因?

JellyBool

视频中应该有说到,确定正确引用 SendCloudTemplate 这个类:

use xx\ SendCloudTemplate;
zddragon

发过帖子后,我意识到没有引用这个命名空间,低级错误

JellyBool

哈哈哈,见多就知道。。。

wl876645

大神更新好快!辛苦了

John Howard

SendCloudException in SendCloudTransport.php line 188:
Bad username / password!

求解。每一步都是按照教程来的

JellyBool

确保你的 sendcloud 的 API_USER 和 API_KEY 配置正确。视频貌似就有提醒

John Howard

谢谢,原来是我的API_USER没有填写正确

a119347

那个add method的快捷键是怎么设置的

JellyBool

comand shift a 搜 add,就可以了,你也可以设置一个快捷键的

yurenzhen

[InvalidArgumentException]
Could not find package naux/sendcloud at any version matching your PHP version 5.5.30.0
请问下这个是php版本的问题吗?我换了好几个版本都报这个错误

JellyBool

是的,最低要求是 5.6 吧

yijiang

现在laravel5.3 要求PHP5.6.4以上,5.6.1还是要去升级。

yijiang

我报Field 'settings' doesn't have a default value,没有settings的值

JellyBool

你没有给这个字段 nullable 吧

gaofei

我也报这个错误提示,你怎么解决的

a236220500

请问一下,我使用视频上的注册点击注册没反应,\vendor\laravel\framework\src\Illuminate\Foundation\Auth\RegistersUsers.php这个文件夹下的register方法的$this->validator($request->all())->validate();这个执行了,但是下面的事件好像没执行,我把这段验证代码删除了就可以往下执行,validator验证也是通过的是怎么回事啊

a236220500

刚才问的问题解决了...

mornone

大家都是付费用户吗?

噼里啪啦小蛋哥

php5.5 没有匹配的sendcloud包

JellyBool

这个版本的 php 已经不满足 laravel 5.2 的最低要求了,然而这个 package 是支持 5.2 的

Levante

@Jellybool 我使用php artisan --version,得到的是Laravel Framework version 5.2.45

正確的升級5.3方法可以在哪邊知道?

@JellyBool 或者我乾脆重裝,composer create-project laravel/laravel zhihu 5.3.*

Levante

@Jellybool 我使用php artisan --version,得到的是Laravel Framework version 5.2.45

正確的升級5.3方法可以在哪邊知道?

JellyBool

如果是新的项目,可以重新创建一个,一定要升级的话,参照这个

https://laravel.com/docs/5.3/upgrade#upgrade-5.3.0

Levante

@JellyBool SendCloud這服務好像只限定中國地區可以使用,我得改用mailgun,但寫法會很差多嗎?

目前我已經設定好,確認可以寄送郵件。但是用戶那邊的認證信Controller不知道怎麼寫。

JellyBool

不会差很多,使用 mailgun 的话, laravel 自带就有支持。而且在使用 mailgun 的时候,你只要将视频中提到的 模板 换成你对应的 email 视图,并且注意一下传入的 data 就好;很多地方你直接就可以用,mailgun 方便多了

Levante

@JellyBool 試了好多次,沒有正確傳到View
2017-01-16 16 29 53

@JellyBool 我的View :

2017-01-16 16 40 54

JellyBool

哎呀,你用 mailgun 的话。不用使用 sendcloud 的这个 package,laravel 默认就支持了的。你可以直接这样:

Mail::send('emails.welcome', $data, function ($message) {
    $message->from('us@example.com', 'Laravel');

    $message->to('foo@example.com');
});

或者你直接参照 5.3 一样发送邮件 https://laravel.com/docs/5.3/mail

Levante

@JellyBool

我都寫好了,但是這次卻報這個錯誤:

Undefined variable: data (View: /home/vagrant/Code/zhihu-app/resources/views/email/welcome.blade.php)

但我的emails/welcome.blade.php,照個官方文檔寫的嵌套{{ 變量名 }},應該是正確的,為什麼會報錯?

2017-01-16 16 40 54

JellyBool

试试这样传入吧:

Mail::send('emails.welcome', ['data' => $data], function ($message) {
    $message->from('us@example.com', 'Laravel');

    $message->to('foo@example.com');
});

或者你在 视图中这样取值试试 :$data['name'] ,如果是直接传的 $data ,也可以试试这样取值 $name $url ,无外乎这几种选择

Levante

@JellyBool 解決了,說實在 Mailgun 好用多,以下是我的code:

Mail::send('email.welcome', ['data' => $data], function ($message) use($user) {
            $message->from('postmaster@sandboxd1234567890.mailgun.org', 'Laravel');

            $message->to($user->email);
        });

emails/welcome.blade.php

<h1>{{ $data['name'] }},真棒!</h1>

<p>請點擊以下連結完成認證:</p>
<a href="{{ $data['url'] }}">{{ $data['url'] }}</a>
JellyBool

mailgun 确实好用很多,但是这边的大环境下,很多很好的服务用起来还是很鸡肋

Frank Wang

第一次尝试注册的时候,不知道为什么会报这个错误,

SQLSTATE[HY000]: General error: 1364 Field 'questions_count' doesn't have a default value 

代码都是跟着教程走,按说这里和 questions_count 字段也没关系呀

JellyBool

questions_count 你没有设置 默认值吧,而在你创建一个 question 的时候,又没有传值进去

Frank Wang

有啊,代码最开始设置create_user.php时候就有->default(0)啊

JellyBool

你把你的 questions 这个 migration 文件贴出来看看?报错信息就是你没对 questions_count 这个字段设置默认值

coly

请问一下,你这网站月收入多少?

hard88

Swift_TransportException in AbstractSmtpTransport.php line 383:
Expected response code 250 but got code "530", with message "530 5.7.1 Authentication required
"
你好,这个是因为什么?

JellyBool

你是使用 smtp 发送邮件么?

检查密码和邮箱是否填写正确。

hard88

是sendcloud,把github重新粘了一遍,又好了,两次唯一区别,出错的时候发送邮箱是qq邮箱,但是英文的邮箱,不是数字,这个算么。谢谢

JellyBool

嗯哼,问题解决了就好