Php 用户使用Laravel提交的帖子
我试图建立一个应用程序,它将包含一个管理仪表板,管理员将能够CRUD的职位,但他也将能够看到用户提交的职位。 另一方面,来宾可以只看到帖子,但他可以创建用户提交的帖子 到目前为止,我已经设法让帖子的功能正常工作,但没有为用户提交帖子 我的控制器:Php 用户使用Laravel提交的帖子,php,laravel,blade,posts,Php,Laravel,Blade,Posts,我试图建立一个应用程序,它将包含一个管理仪表板,管理员将能够CRUD的职位,但他也将能够看到用户提交的职位。 另一方面,来宾可以只看到帖子,但他可以创建用户提交的帖子 到目前为止,我已经设法让帖子的功能正常工作,但没有为用户提交帖子 我的控制器: namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Usp; class AdminUserPostsController extends Controller
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Usp;
class AdminUserPostsController extends Controller
{
public function index()
{
$userposts = Usp::orderBy('id', 'desc')->paginate(10);
return view('admin.userposts.archive')->withUsp($userposts);
}
public function show($id)
{
$userpost = Usp::find($id);
return view('admin.userposts.show')->withUsp($userpost);
}
}
我的模型
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Usp extends Model
{
//
}
虽然我在控制器中定义了userposts变量,但我得到的错误是没有定义userposts变量。任何有帮助的人?如果您想使用
userposts
变量,请执行以下操作:
return view('admin.userposts.archive', compact('userposts');
或者这个:
return view('admin.userposts.archive', ['userposts' => $userposts]);
如果要使用
userposts
变量,请执行以下操作:
return view('admin.userposts.archive', compact('userposts');
或者这个:
return view('admin.userposts.archive', ['userposts' => $userposts]);
更改此项:
return view('admin.userposts.show')->withUsp($userpost);
到
然后再试一次。您可以在blade视图上获得$userpost
,如下所示:
{{$userpost}}
如果是数组,请使用foreach()
获取其所有元素。更改此选项:
return view('admin.userposts.show')->withUsp($userpost);
到
然后再试一次。您可以在blade视图上获得$userpost
,如下所示:
{{$userpost}}
如果是数组,请使用foreach()
获取其所有元素。您应该将变量“传输”到视图中。有几种方法可以做到这一点,但我认为最常见的是使用“with compact”。在你的情况下,你应该改变这个
return view('admin.userposts.archive')->withUsp($userposts);
对此
return view('admin.userposts.archive')->with(compact('userposts'));
它是如何工作的:
compact("varname", [...])
返回一个数组,其中键为变量名,值为变量值
with将所有阵列传输到视图
附言:
和这个一模一样
['userposts' => $userposts]
您应该将变量“传输”到视图中。有几种方法可以做到这一点,但我认为最常见的是使用“with compact”。在你的情况下,你应该改变这个
return view('admin.userposts.archive')->withUsp($userposts);
对此
return view('admin.userposts.archive')->with(compact('userposts'));
它是如何工作的:
compact("varname", [...])
返回一个数组,其中键为变量名,值为变量值
with将所有阵列传输到视图
附言:
和这个一模一样
['userposts' => $userposts]
非常感谢你们所有人!也谢谢你的解释。我的商店功能怎么样?当我必须使用此代码重定向时
return redirect()->route('admin.userposts.show',$userpost->id)代码>我试图使其返回重定向()->路由('admin.userposts.show',compact('userpost',id')代码>但它不起作用:(route函数的工作方式并不完全相同,对于显示帖子这样的简单事情,您可以像使用$userpost->id
那样直接传递值,或者您可以使用完整对象,框架将决定它采用的值(默认情况下为id)(即只给他$userpost
)。如果要更改列,可以更改列。只有当您有多个参数时,才需要传递一个数组,键是参数的名称。此外,为了解释compact('userpost',id')
,这意味着您实际上有两个变量,一个是$userpost
,另一个是$id
。如果定义了这两个变量,它将返回['userpost'=>$userpost,'id'=>$id]
这说明了很多问题,现在我想我可以在使用compact在视图中传递变量时解决它。我想现在唯一的问题是我无法存储userpost,因为在我尝试执行$userpost=new Usp;$userpost->title=$request->title;$userpost->body=$request->body;$userpost->sav后它返回nulle();
在这种情况下我也必须使用compact吗?因为这是一个完全不同的问题,我认为您应该将它作为一个单独的主题,我很高兴在这里回答您。非常感谢大家!也感谢你们的解释。但是我的存储函数呢?当我必须使用此代码重定向时返回重定向()->路由('admin.userposts.show',$userpost->id);
我试着让它返回重定向()->路由('admin.userposts.show',compact('userpost',id');
但它不起作用:(route函数的工作方式并不完全相同,对于显示帖子这样的简单事情,您可以像使用$userpost->id
那样直接传递值,或者您可以使用完整对象,框架将决定它采用的值(默认情况下为id)(即只需给他$userpost
)。如果要更改列,可以更改列。只有当您有多个参数时,才需要传递一个数组,键是参数的名称。此外,为了解释compact('userpost',id')
,这意味着您实际上有两个变量,一个是$userpost
,另一个是$id
。如果定义了这两个变量,它将返回['userpost'=>$userpost,'id'=>$id]
这说明了很多问题,现在我想我可以在使用compact在视图中传递变量时解决它。我想现在唯一的问题是我无法存储userpost,因为在我尝试执行$userpost=new Usp;$userpost->title=$request->title;$userpost->body=$request->body;$userpost->sav后它返回nulle();
在这种情况下我也必须使用compact吗?因为这是一个完全不同的问题,我认为你应该把它作为一个单独的主题,我很乐意在那里回答你