لوگوی وبسایت
تمام آموزش های وبسایت رایگان می باشد ، پس از صفحات مختلف سایت دیدن فرمایید .

آموزش ساخت سیستم آگهی استخدام با yii2 قسمت ۲

سلام دوستان امیدوارم حالتون خوب باشد . در این قسمت قرار است سیستم رو تموم کنیم ( ما تموم میکنیم ولی قطعا امکانات خاص دیگه ایی هم هست که شما اضافه خواهید کرد 🙂 )

خوب در قسمت بعدی صفحه ی اصلی رو ساختیم حالا باید صفحه ی نمایش مطالب در دسته بندی ها رو بسازیم .

آماده سازی صفحه ی مطالب در دسته بندی

برای این کار در کنترل Site ما یک اکشن میسازیم به نام actionJobsbycat که یک ورودی به نام $id میگیرد که در اصل شناسه ی دسته بندی ما است .

حالا باید چک کنیم و  ببینیم که آیا شناسه در دیتابیس ثبت شده است یا نه و اگر ثبت نشده بود پیام خطا ی ۴۰۴ نمایش داده شود در غیر اینصورت یک ویو به نام jobsbycatid نمایش داده شود که به آن دسته بندی هم میدهیم .

خوب حالا باید ویو رو آماده کنیم . در پوشه views/site یک فایل به نام jobsbycatid.php میسازیم سپس کد زیر را در آن قرار میدهیم .

توضیحات کد بالا :

من اول عنوان صفحه رو تغییر دادم . بعد یک SqlDataAdapter تعریف کردم که تعریف آن به شکل زیر انجام میشود.

خوب حالا باید GridView رو نمایش بدهیم . برای این کار روش های مختلفی وجود دارد که در مقاله های بعدی انشالله به آن خواهم پرداخت :

شما می توانید GridView را فقط با تعریف DataProvider ، تعریف کنید ولی برای بهتر شدن کار ما نحوه نمایش رو تغییر دادم ، همچنین با دادن یک آرایه به columns میتوانید مقدار ستون های خودتان رو ویرایش کنید . برای این کار یک آرایه از آرایه های زیر باید بسازیم .

برای هر ستون باید یک آرایه بسازید ، میتوانید فقط نام ستون را به جای آرایه وارد کنید که با توجه به Label در کلاس مدل و خروجی دیتابیس ، خروجی نمایان میشود.

قبل از امتحان کد بالا باید چند متد بسازید که کد بالا جواب بدهد .

اولین متد getJobMeta در jobs هست  که متای آگهی رو از دیتابیس میگیرد .

 

آماده سازی صفحه ی اگهی

قبل از شروع ساخت این صفحه بگم که یک بخش به نام متا های اضافی ما به هر آگهی اضافه میکنیم که در متا های مورد نظر کاربر اضافه میشود . این بخش در قالب JSON در دیتابیس ذخیره میشود .

باید اول اکشن مد نظرمون رو بسازیم ( actionJob ) . این اکشن ورودی یک شناسه دارد که شناسه ی آگهی ما میباشد و باید چک کنیم که آیا آگهی وجود دارد یا نه و اگر وجود داشت ، ویو مد نظرمون رو نمایش بدیم . ( و ریکورد رو بهش ارسال میکنیم )

خوب یک ویو به نام job میسازیم :

کد بالا توضیح خاصی ندارد فقط قرارمان این است که یک متا به نام  jobother ثبت میکنیم که یک ارایه است ( به json تبدیل شده ) که key آن نام متا و value آن مقدار متای ما است . حالا نوبت ثبت آگهی است .

ساخت مدل کنترلر آگهی

شاید بگویید یک مدل اضافی ؟ چرا ؟ ما نیاز داریم در جا های مختلف فرم آگهی رو نمایش بدهیم . برای آپدیت ، ثبت آگهی ، مدیریت و … خوب ما با ساختن یک مدل کار خودمون رو راحت میکنیم. پس یک مدل در GII به نام JobsControl میسازیم ، نیازی نیست که ActiveQuery رو فعال کنید . متغیر های مد نظرمون رو ثبت میکنیم و یک متد برای ساخت شغل میسازیم .

همه متغیر ها واضح اند ولی شاید دو متغیر var $jobThumbnailUploaded;   var $jobThumbnailName; برای شما سوال ایجاد کند.

ما تصمیم داریم برای آپلود فایل هم از Yii2 استفاده کنیم پس یک متغیر برای خود فایل و یک متغیر برای نام فایل میسازیم ، کمی جلو تر میبینید که آپلود فایل در YII2 کار راحتی است .

خوب در SiteController اکشن مون رو میسازیم .

همون طور که میبینید اگر بهش پست ارسال بشه ( ما از ActiveForm استفاده میکنیم ) اونو توی یک JobControl میریزیم ، فایل رو آپلود میکنیم و سپس ذخیره میکنیم .

برای آپلود فایل از UploadedFile استفاده میکنیم که instance رو با دادن مدل و نام متغیر میگیریم و با استفاده از saveAs اون رو ذخیره میکنیم .

حالا باید View مون رو آماده کنیم .

همون طور که میبینید ما اول یک ActiveForm تعریف میکنیم . سپس فیلد های ساده رو نمایش میدیم ، برای ایجاد یک فیلد Upload از  fileInput ، برای ساخت textview از textarea و برای ساخت دراپ دون لیست از dropDownList استفاده میکنیم.

برای آپلود فایل به [ ‘options’ =>[“enctype”=>”multipart/form-data”]  نیاز داریم.

برای متا های اضافی من یک بخش اضافه کردم ( با جاوا اسکریپت ) که کاربر میتونه متا ها رو اضافه کنه یا حذف کنه . هنگام اضافه کردن متا یک input Hidden ساخته میشه که key و value رو در آن ذخیره میکنیم .

خوب الان ذخیره هم آماده هست و میتونه این کار انجام بشه . بعد از ذخیره کردن هم view ایی به نام jobsaved نمایش داده میشه که باید بسازیمش.

فایل jobsaved.php رو میسازیم و کد زیر رو در آن قرار میدیم .

تبریک ! سیستم آماده است ! فقط من چون آموزش ابتدایی بود زیاد به باگ هایی مثل RFU و XSS توجه نکردم .

مشکل INTERNAL ERROR دارید ؟

بند xSendFile رو از .htaccess در پوشه ی job/web حذف کنید .

 

بر چسب های پست : , , , , ,
مطالب مرتبط
سلام دوستان ، امیدوارم حالتون خوب باشد ،در این آموزش قرار است مروری بر مدل کوئری ...
۳۱ شهریور ۹۴
0 دیدگاه
سلام دوستان با یک آموزش توپ در خدمت شما هستم . در این آموزش قرار ما یک سیستم آگه ...
۳۰ شهریور ۹۴
7 دیدگاه
سلام دوستان ، امیدوارم حالتون خوب باشد . فریم ورک ها یکی از مهم ترین بخش های برن ...
۲۸ شهریور ۹۴
2 دیدگاه
2 دیدگاه برای “آموزش ساخت سیستم آگهی استخدام با yii2 قسمت ۲”
  1. kamyar_IT گفت:

    سورس کار نمیکند لطفا سورس درست را قرار دهید

  2. shaolin گفت:

    بلد نیستی چرا سایت میزنی ؟هه

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

ورود به حساب کاربری
بستن این پنجره