2 回答
TA贡献1821条经验 获得超6个赞
我认为你很接近,但我有一些想法可能对你有帮助。
首先,您是否检查过您的路线设置是否正确routes/web.php?如果您使用了 Laravel 文档中的一些示例,则您的路由可能会在不使用您编写的控制器的情况下返回视图。如果你有这样的事情:
Route::get('/', function () {
return view('dashboard');
});
...那么你可能想用这样的东西替换它:
Route::get( '/', 'PostController@show );
管理路由的方法有很多种——Laravel Docs会很好地解释其中的一些。
此外,当将东西从控制器传递到视图时,我喜欢将我的对象分配给关联数组,然后在使用视图方法时传递该数组。这完全是个人喜好,但您可能会发现它很有用。有点像这样:
public function show()
{
// Create output array - store things in here...
$output = [];
$output[ "posts" ] = Post::all();
// Render the Dashboard view with data...
return view( 'dashboard', $output );
}
希望有些帮助!
TA贡献1963条经验 获得超6个赞
试试下面的代码,
<?php
namespace App\Http\Controllers;
use App\Http\Requests;
use App\Post;
use App\UserTypes;
use Auth;
use Hashids;
use Redirect;
use Illuminate\Http\Request;
use Hash;
class PostController extends Controller
{
public function show()
{
//Fetching all the posts from the database
$posts = Post::get();
return view('dashboard', compact('posts'));
}
public function store(Request $request)
{
$this->validate($request,[
'body' => 'required'
]);
$post = new Post;
$post->body = $request->body;
$request->user()->posts()->save($post);
return redirect()->route('dashboard');
}
}
- 2 回答
- 0 关注
- 113 浏览
添加回答
举报