衷心感谢改版期间大家给予的帮助和体谅

微信登录

微信登录

因恶意注册过多,目前只支持微信模式
付费课程, 订阅后即可观看
正在播放:使用自定义关联字段绑定一对多关系
发布于: 2018.06.13
空中的鱼儿 2019.10.10 03:41

😒《使用自定义关联字段绑定一对多关系》 练习了好几次,每次都卡在这里,http://laravel.test/user/1 获取不到用户,http://laravel.test/post/1获取不到文章数据。数据库里有用户和文章的数据。在 tinker 里创建的 20 篇文章,在 tinker 能获取到用户和文章的信息。(不管项目是跟着这个系列做下来的,还是全新的项目,我都试过了,死活过不了这关。) 已生成用户系统。已在用户模型和文章模型绑定关系: class Post extends Model { protected $fillable = ['title','uid']; public function user() { return $this->belongsTo(User::class,'uid'); } } 用户模型: public function posts() { return $this->hasMany(Post::class,'uid'); } 文章表: public function up() { Schema::create('posts', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('title'); $table->unsignedBigInteger('uid'); $table->foreign('uid')->references('id')->on('users'); $table->timestamps(); }); } 文章数据工厂: use App\Post; use Faker\Generator as Faker;

$factory->define(Post::class, function (Faker $faker) { return [ 'title' => $faker->sentence, 'uid' => \App\User::all()->random()->id ]; });

路由文件 web.php :

codinget 2019.10.10 03:51

条件不全,web.php 中并没有 user 和 post 相关的路由,添加两个可变参数的动态 get 路由就行了

空中的鱼儿 2019.10.10 04:26

我反复看好几次视频,你也没有 user 和 post 相关的路由?怎么能访问到? Route::get('/user', function ( Request $request) { $user = $request-&gtuser(); dd($user); }); 你说的路由我没学会写,查看笔记也写不出,应该怎么写?

codinget 2019.10.10 04:40

http://www.coding10.com/lesson/laravel55-routes-params 这是基础部分的课程,静下心来好好学吧,多思考,多推理,有了困难别轻易放过去,写个动态路由是最最基础的内容,传入id之后,就可以查找数据了 $user = User::find($id) 就可以获取到,post也是如此

空中的鱼儿 2019.10.10 07:06

个人理解能力欠佳,全力以赴也难见长进,唯有边学边悟吧。 Route::get('post/{uid}', function ($uid) { $post = Post::find($uid); return '&ltdiv&gt作者:' . $post-&gtuser-&gtname . '&lt/div&gt&lt/br&gt' . $post-&gttitle . '&lt/br&gt' . $post-&gtcreated_at; });

Route::get('user/{id}', function ($id) { $user = User::find($id); return $user-&gtname . '&lt/br&gt'. $user-&gtposts. $user-&gtpost-&gttitle; # 获取失败 });

codinget 2019.10.10 07:24

学技术只要愿意静下心来,不求快,不冒进,不胡思乱想,坚持一段时间就能突破,用户跟文章是一对多的关系, $user-&gtpost-&gttitle; 这样肯定会失败的,因为不是一对一的关系。 对于一对多,可以循环遍历输出每一个文章的内容,http://www.coding10.com/lesson/laravel55-basic-blog-index-page-paginate 这期视频对这部分有很详细的解释,多做多思考视频根据需要看,而不能走马观花什么都看,视频能少看尽量少看,文档能多看尽量多看。

空中的鱼儿 2019.10.11 10:25

原本我就是看不太懂文档和书本教程,才看视频教程辅助和加强理解的。 文档有英文版,中文版,速查表版。要是再有一套全面加深入完整讲解文档的视频版,或书本版就好了。 那样,看不懂文档的人,可以先查看视频讲解版,或书本讲解版。 我可能学 Laravel 基础太久了,本能对基础课程有了抗拒。 算了,不说了,我要强迫自己再重头开始认认真真的学习基础了。

codinget 2019.10.11 10:34

不,我的观点是你还没真正学过基础,你只是走马观花留了一遍而已,学基础也不是一个好说法,不管哪个行业入门阶段都是“打基础”,基础的东西虽然看似简单,但却最难的阶段,不然也不会说万事开头难,打好了基础,后边反而有一个阶段能做到策马奔腾,然后就会再遇到一个啃骨头阶段,然后又开始循环...... 技术这条路不要抗拒,看到困难得想办法兴奋起来才行,这才是超过别人最好的机会,你得花一些精力克服自己的心理障碍了。

空中的鱼儿 2019.10.11 10:54

😢😢😢 我还是头一回看到有人在路由文件里获取和创建那么多数据的。现在看来那几本书白学了几个月了。好吧,我学基础去了。

标 题
找一条适合自己的路,坚持走下去
编程原力 京ICP备17045322号-2
版权所有, 侵权者追究法律责任