我有一个名为image = Image.open("Images\matrix.jpg")
photo = ImageTk.PhotoImage(image)
#self.background_image = tk.PhotoImage(file=photo) -- Not needed, delete
self.background_label = tk.Label(image=photo)
self.background_label.image = photo
self.background_label.place(x=0,y=0)
#self.background_label.img = self.background_image -- Also not needed, delete
的控制器和一个名为PostController
的模型。
这是我的PostController:
Post
这是我的post.index:
use Illuminate\Http\Request;
use App\Post;
class PostsController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$posts = Post::all();
return view('posts.index')->with('posts',$posts);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
}
看下面的图片:
当我单击帖子1时,laravel为什么要运行show方法(如图所示)?
这是否意味着每次我们单击链接时,show方法都将起作用?
答案 0 :(得分:0)
有一个路由文件,用于连接show方法和PostController控制器。该路由以相应的方法触发控制器。当您单击帖子1时,您将获得一个URL路径posts / id,此路径表示以下路由,并且该路由触发方法和控制器
在routes/web.php
文件中找到路由文件
Route::get('/posts/{id}', 'PostController@show');
答案 1 :(得分:0)
I'm assuming you created a resource route in your routes/web.php
like so:
Route::resource('posts', 'PostsController');
When you perform a GET
request and supply the id
as the second url segment, this is routed to the PostsController@show
method.
答案 2 :(得分:0)
当我单击帖子1时,laravel为什么要运行show方法(如图所示)?
因为链接的href中的网址格式与show
路由的格式匹配。
这是否意味着每次我们单击链接时,show方法都将起作用?
不。仅当您的链接与show
文件中的show
模式匹配时,才使用routes/web.php
路由。要使用其他路由,请使用其他URL。例如,如果您从以下位置更改网址:
<a href="/posts/{{ $item->id }}">
对此:
<a href="/posts/{{ $item->id }}/edit">
然后将遵循edit
路线。
这是您正在谈论的链接的代码:
<h3><a href="/posts/{{ $item->id }}">{{ $item->title }}</a></h3>
/posts/$id
路线是show
中routes/web.php
路线的默认路线。
在您的routes/web.php
文件中,您可以:
Route::get('/posts/{$id}', 'PostsController@show');
或:
Route::resource('/posts', 'PostsController');
Route::resource
(在此示例中与“帖子”一起使用)是以下简称:
Route::get('/posts', 'PostsController@index');
Route::get('/posts/create', 'PostsController@create');
Route::post('/posts', 'PostsController@store');
Route::get('/posts/{id}', 'PostsController@show');
Route::get('/posts/{id}/edit', 'PostsController@edit');
Route::patch('/posts/{id}', 'PostsController@update');
Route::delete('/posts/{id}', 'PostsController@delete');
如您所见,show
路由包含在Route::resource
中,并且与您在posts.index
中给出的网址格式匹配。