当我保存帖子时,它会保存发布它的用户的ID。 这很好,但我不明白如何。
# Log in to the server. This can be done only once.
wget ‐‐cookies=on ‐‐save-cookies cookies.txt ‐‐keep-session-cookies ‐‐post-data ‘user=un&password=password’ http://example.com/file.zip
# Now grab the file using below
wget --no-check-certificate --load-cookies cookies.txt \
-p https://dummyurl.com/dummyfile.zip
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Post;
class PostController extends Controller
{
public function postCreatePost(Request $request)
{
$post = new Post();
$post->body = $request['body'];
$request->user()->posts()->save($post); //i cant understand this line
return redirect()->route('dashboard');
}
}
?>
<?php
namespace App;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
class User extends Model implements Authenticatable
{
use \Illuminate\Auth\Authenticatable;
public function posts()
{
return $this->hasMany('App\Post'); // ?
}
}
我不明白属于谁并且有很多关系。 如果有人能向我解释,我将非常感激。
答案 0 :(得分:3)
在这种情况下,hasMany
表示它会在many
表的the user id
列中找到user_id
行posts
。
belongsTo
只是意味着它会在user
表中找到与id
匹配的users
,其中user_id
列与posts related row
列相匹配$request->user()->posts()->save($post);
。
最后,->save($model)
:
->save($object)
有点诡计。这要求传递给posts()
函数的对象是关系的实例。在我们的示例中,关系为$post
,因此App\Post
只需要是Models
的实例(或this.echo()
命名空间的任何位置)。
答案 1 :(得分:1)
您可以在official documentation和&#34; Eloquent Relationships&#34;章节中找到解释。来自书&#34; Code Smart&#34; (Laravel 4)。
您可以找到更多资源in Google。